diff --git a/Custom_EasyBlocks/README.md b/Custom_EasyBlocks/README.md
index 12109c4ad29ebbb1b5868af4ae08703a46dd6c6a..6598a6a759dfead38a2f8443d1b7b2abf83f8ea2 100644
--- a/Custom_EasyBlocks/README.md
+++ b/Custom_EasyBlocks/README.md
@@ -47,4 +47,9 @@ Overview of the custom EasyBlocks.
 - __*difference compared to upstream*__ the aforementioned
 - __*can not be removed*__ Once the PR is merged upstream. Hopefully with the next release
 
+## JULIA
 
+- __*added by*__ j.goebbert
+- __*needed because*__ we offer more functionality compared to upstream
+- __*difference compared to upstream*__ upstream has not yet an EasyBlock for julia, juliabundle and juliapackage
+- __*can not be removed*__ once merged with upstream
diff --git a/Custom_EasyBlocks/julia.py b/Custom_EasyBlocks/julia.py
new file mode 100644
index 0000000000000000000000000000000000000000..51f485136bce56c82533fffa4dbe9caa8a977fc8
--- /dev/null
+++ b/Custom_EasyBlocks/julia.py
@@ -0,0 +1,236 @@
+##
+# Copyright 2009-2019 Ghent University
+#
+# This file is part of EasyBuild,
+# originally created by the HPC team of Ghent University (http://ugent.be/hpc/en),
+# with support of Ghent University (http://ugent.be/hpc),
+# the Flemish Supercomputer Centre (VSC) (https://www.vscentrum.be),
+# Flemish Research Foundation (FWO) (http://www.fwo.be/en)
+# and the Department of Economy, Science and Innovation (EWI) (http://www.ewi-vlaanderen.be/en).
+#
+# https://github.com/easybuilders/easybuild
+#
+# EasyBuild is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation v2.
+#
+# EasyBuild is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with EasyBuild.  If not, see <http://www.gnu.org/licenses/>.
+##
+"""
+EasyBuild support for building and installing Julia packages, implemented as an easyblock
+
+@author: Victor Holanda (CSCS)
+@author: Samuel Omlin (CSCS)
+minor adjustments by Jens Henrik Goebbert (JSC)
+"""
+import os
+import socket
+
+from easybuild.tools.config import build_option
+from easybuild.framework.easyconfig import CUSTOM
+from easybuild.easyblocks.generic.configuremake import ConfigureMake
+from easybuild.tools import systemtools
+
+
+class EB_Julia(ConfigureMake):
+    """
+    Install an Julia package as a separate module, or as an extension.
+    """
+    @staticmethod
+    def extra_options(extra_vars=None):
+        extra_vars = {
+            'system_name': [None, "Change julia's Project.toml pathname", CUSTOM],
+            'arch_name': [None, "Change julia's Project.toml pathname", CUSTOM],
+        }
+        return ConfigureMake.extra_options(extra_vars)
+
+
+    def get_environment_folder(self):
+        env_path = ''
+
+        systemname = 'default'
+        if self.cfg['system_name']:
+            systemname = self.cfg['system_name']
+
+        if self.cfg['arch_name']:
+            env_path = '-'.join([systemname, self.cfg['arch_name']])
+            return env_path
+
+        arch = systemtools.get_cpu_architecture()
+        cpu_family = systemtools.get_cpu_family()
+        env_path = '-'.join([systemname, cpu_family, arch])
+        return env_path
+
+    def get_user_depot_path(self):
+        user_depot_path = ''
+
+        arch = systemtools.get_cpu_architecture()
+        cpu_family = systemtools.get_cpu_family()
+        user_depot_path = os.path.join('~', '.julia', self.version, self.get_environment_folder())
+        return user_depot_path
+
+    def __init__(self, *args, **kwargs):
+        super(EB_Julia, self).__init__(*args, **kwargs)
+
+        self.user_depot = self.get_user_depot_path()
+        local_share_depot = os.path.join(self.installdir, 'local', 'share', 'julia')
+        share_depot = os.path.join(self.installdir, 'share', 'julia')
+        self.std_depots = ':'.join([local_share_depot, share_depot])
+        self.julia_depot_path = ':'.join([self.user_depot, self.std_depots])
+        self.admin_depots = os.path.join(self.installdir, 'extensions')
+
+        self.julia_project = os.path.join(self.user_depot, "environments", '-'.join([self.version, self.get_environment_folder()]))
+
+        self.user_load_path = '@:@#.#.#-%s' % self.get_environment_folder()
+        self.std_load_paths = '@stdlib'
+        self.julia_load_path = ':'.join([self.user_load_path, self.std_load_paths])
+        self.admin_load_path = os.path.join(self.admin_depots, "environments", '-'.join([self.version, self.get_environment_folder()]))
+
+    def sanity_check_step(self):
+        """Custom sanity check for Julia."""
+
+        custom_paths = {
+            'files': [os.path.join('bin', 'julia'), 'LICENSE.md'],
+            'dirs': ['bin', 'include', 'lib', 'share'],
+        }
+        custom_commands = [
+            "julia --version",
+            "julia --eval '1+2'",
+        ]
+
+        super(EB_Julia, self).sanity_check_step(custom_paths=custom_paths, custom_commands=custom_commands)
+
+    def install_step(self, *args, **kwargs):
+        """Install procedure for Julia"""
+
+        super(EB_Julia, self).install_step(*args, **kwargs)
+        txt = """
+## Read EB environment variables
+
+if haskey(ENV, "EBJULIA_ADMIN_LOAD_PATH")
+    ADMIN_LOAD_PATH = split(ENV["EBJULIA_ADMIN_LOAD_PATH"],':')
+else
+    ADMIN_LOAD_PATH = []
+end
+
+if haskey(ENV, "EBJULIA_STD_LOAD_PATH")
+    STD_LOAD_PATH = split(ENV["EBJULIA_STD_LOAD_PATH"],':')
+else
+    STD_LOAD_PATH = []
+end
+
+if haskey(ENV, "EBJULIA_ADMIN_DEPOT_PATH")
+    ADMIN_DEPOT_PATH = split(ENV["EBJULIA_ADMIN_DEPOT_PATH"],':')
+else
+    ADMIN_DEPOT_PATH = []
+end
+
+if haskey(ENV, "EBJULIA_STD_DEPOT_PATH")
+    STD_DEPOT_PATH = split(ENV["EBJULIA_STD_DEPOT_PATH"],':')
+else
+    STD_DEPOT_PATH = []
+end
+
+
+## Inject the admin paths, except if paths empty (or only "@" for LOAD_PATH) or all entries in std path.
+if !( isempty(LOAD_PATH) || isempty(DEPOT_PATH) || (length(LOAD_PATH)==1 && LOAD_PATH[1]=="@") ||
+      all([entry in STD_LOAD_PATH for entry in LOAD_PATH]) || all([entry in STD_DEPOT_PATH for entry in DEPOT_PATH]) )
+
+    ## Inject the admin load path into the LOAD_PATH
+
+    # Empty the LOAD_PATH, separating load path into user and std load path.
+    user_load_path = []
+    std_load_path = []
+    while !isempty(LOAD_PATH)
+        entry = popfirst!(LOAD_PATH)
+        if entry in STD_LOAD_PATH
+            push!(std_load_path, entry)
+        else
+            push!(user_load_path, entry)
+        end
+    end
+
+    # Add user load path to LOAD_PATH
+    while !isempty(user_load_path)
+        entry = popfirst!(user_load_path)
+        push!(LOAD_PATH, entry)
+    end
+
+    # Add admin load path to LOAD_PATH
+    while !isempty(ADMIN_LOAD_PATH)
+        entry = popfirst!(ADMIN_LOAD_PATH)
+        push!(LOAD_PATH, entry)
+    end
+
+    # Add std load path to LOAD_PATH
+    while !isempty(std_load_path)
+        entry = popfirst!(std_load_path)
+        push!(LOAD_PATH, entry)
+    end
+
+
+    ## Inject the admin depot path into the DEPOT_PATH
+
+    # Empty the DEPOT_PATH, separating depots into user and std depots.
+    user_depot_path = []
+    std_depot_path = []
+    while !isempty(DEPOT_PATH)
+        depot = popfirst!(DEPOT_PATH)
+        if depot in STD_DEPOT_PATH
+            push!(std_depot_path, depot)
+        else
+            push!(user_depot_path, depot)
+        end
+    end
+
+    # Add user depots to DEPOT_PATH
+    while !isempty(user_depot_path)
+        depot = popfirst!(user_depot_path)
+        push!(DEPOT_PATH, depot)
+    end
+
+    # Add admin depots to DEPOT_PATH
+    while !isempty(ADMIN_DEPOT_PATH)
+        depot = popfirst!(ADMIN_DEPOT_PATH)
+        push!(DEPOT_PATH, depot)
+    end
+
+    # Add std depots to DEPOT_PATH
+    while !isempty(std_depot_path)
+        depot = popfirst!(std_depot_path)
+        push!(DEPOT_PATH, depot)
+    end
+
+end
+
+        """
+        with open(os.path.join(self.installdir, 'etc', 'julia', 'startup.jl'), 'w') as startup_file:
+            startup_file.write(txt)
+            startup_file.close()
+
+    def make_module_extra(self, *args, **kwargs):
+        txt = super(EB_Julia, self).make_module_extra(*args, **kwargs)
+
+        txt += self.module_generator.set_environment('JULIA_INSTALL_FOLDER', self.installdir)
+
+        txt += self.module_generator.set_environment('JULIA_PROJECT', self.julia_project)
+        txt += self.module_generator.set_environment('JULIA_DEPOT_PATH', self.julia_depot_path)
+        txt += self.module_generator.set_environment('EBJULIA_USER_DEPOT_PATH', self.user_depot)
+        txt += self.module_generator.set_environment('EBJULIA_ADMIN_DEPOT_PATH', self.admin_depots)
+        txt += self.module_generator.set_environment('EBJULIA_STD_DEPOT_PATH', self.std_depots)
+
+
+        txt += self.module_generator.set_environment('JULIA_LOAD_PATH', self.julia_load_path)
+        txt += self.module_generator.set_environment('EBJULIA_USER_LOAD_PATH', self.user_load_path)
+        txt += self.module_generator.set_environment('EBJULIA_ADMIN_LOAD_PATH', self.admin_load_path)
+        txt += self.module_generator.set_environment('EBJULIA_STD_LOAD_PATH', self.std_load_paths)
+
+        txt += self.module_generator.set_environment('EBJULIA_ENV_NAME', '-'.join([self.version, self.get_environment_folder()]))
+
+        return txt
diff --git a/Custom_EasyBlocks/juliabundle.py b/Custom_EasyBlocks/juliabundle.py
new file mode 100644
index 0000000000000000000000000000000000000000..6a6dc4352ec0a52e5a6139d1315768c1c12a6dbd
--- /dev/null
+++ b/Custom_EasyBlocks/juliabundle.py
@@ -0,0 +1,116 @@
+##
+# Copyright 2009-2019 Ghent University
+#
+# This file is part of EasyBuild,
+# originally created by the HPC team of Ghent University (http://ugent.be/hpc/en),
+# with support of Ghent University (http://ugent.be/hpc),
+# the Flemish Supercomputer Centre (VSC) (https://www.vscentrum.be),
+# Flemish Research Foundation (FWO) (http://www.fwo.be/en)
+# and the Department of Economy, Science and Innovation (EWI) (http://www.ewi-vlaanderen.be/en).
+#
+# https://github.com/easybuilders/easybuild
+#
+# EasyBuild is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation v2.
+#
+# EasyBuild is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with EasyBuild.  If not, see <http://www.gnu.org/licenses/>.
+##
+"""
+EasyBuild support for building and installing Julia packages, implemented as an easyblock
+
+@author: Victor Holanda (CSCS)
+@author: Samuel Omlin (CSCS)
+minor adjustments by Jens Henrik Goebbert (JSC)
+"""
+import os
+import socket
+
+from easybuild.easyblocks.generic.bundle import Bundle
+from easybuild.tools.config import build_option
+from easybuild.tools import systemtools
+#from easybuild.easyblocks.generic.pythonpackage import PythonPackage, det_pylibdir
+from .juliapackage import JuliaPackage
+
+
+class JuliaBundle(Bundle):
+    """
+    Install an Julia package as a separate module, or as an extension.
+    """
+
+    @staticmethod
+    def extra_options(extra_vars=None):
+        """Easyconfig parameters specific to bundles of Python packages."""
+        #50         extra_vars = {
+        #51             'arch_name': [None, "Change julia's Project.toml pathname", CUSTOM],
+        #52         }
+        if extra_vars is None:
+            extra_vars = {}
+        # combine custom easyconfig parameters of Bundle & JuliaPackage
+        extra_vars = Bundle.extra_options(extra_vars)
+        return JuliaPackage.extra_options(extra_vars)
+
+    def get_environment_folder(self):
+        env_path = ''
+
+        systemname = 'default'
+        if self.cfg['system_name']:
+            systemname = self.cfg['system_name']
+
+        if self.cfg['arch_name']:
+            env_path = '-'.join([systemname, self.cfg['arch_name']])
+            return env_path
+
+        arch = systemtools.get_cpu_architecture()
+        cpu_family = systemtools.get_cpu_family()
+        env_path = '-'.join([systemname, cpu_family, arch])
+        return env_path
+
+    def __init__(self, *args, **kwargs):
+        super(JuliaBundle, self).__init__(*args, **kwargs)
+        self.cfg['exts_defaultclass'] = 'JuliaPackage'
+
+        # need to disable templating to ensure that actual value for exts_default_options is updated...
+        prev_enable_templating = self.cfg.enable_templating
+        self.cfg.enable_templating = False
+
+        # set default options for extensions according to relevant top-level easyconfig parameters
+        julpkg_keys = JuliaPackage.extra_options().keys()
+        for key in julpkg_keys:
+            if key not in self.cfg['exts_default_options']:
+                self.cfg['exts_default_options'][key] = self.cfg[key]
+
+        self.cfg['exts_default_options']['download_dep_fail'] = True
+        self.log.info("Detection of downloaded extension dependencies is enabled")
+
+        self.cfg.enable_templating = prev_enable_templating
+
+        self.log.info("exts_default_options: %s", self.cfg['exts_default_options'])
+
+        self.extensions_depot = 'extensions'
+
+        self.admin_load_path = os.path.join(self.extensions_depot, "environments", '-'.join([self.version, self.get_environment_folder()]))
+
+    def sanity_check_step(self):
+        """Custom sanity check for Julia."""
+
+        custom_paths = {
+            'files': [],
+            'dirs': ['extensions'],
+        }
+        super(JuliaBundle, self).sanity_check_step(custom_paths=custom_paths)
+
+    def make_module_extra(self, *args, **kwargs):
+        txt = super(JuliaBundle, self).make_module_extra(*args, **kwargs)
+
+        txt += self.module_generator.prepend_paths('EBJULIA_ADMIN_DEPOT_PATH', self.extensions_depot)
+
+        txt += self.module_generator.prepend_paths('EBJULIA_ADMIN_LOAD_PATH', self.admin_load_path)
+
+        return txt
diff --git a/Custom_EasyBlocks/juliapackage.py b/Custom_EasyBlocks/juliapackage.py
new file mode 100644
index 0000000000000000000000000000000000000000..58cf4cd4b285828e0e936c14f9c31a1806565a50
--- /dev/null
+++ b/Custom_EasyBlocks/juliapackage.py
@@ -0,0 +1,153 @@
+##
+# Copyright 2009-2019 Ghent University
+#
+# This file is part of EasyBuild,
+# originally created by the HPC team of Ghent University (http://ugent.be/hpc/en),
+# with support of Ghent University (http://ugent.be/hpc),
+# the Flemish Supercomputer Centre (VSC) (https://www.vscentrum.be),
+# Flemish Research Foundation (FWO) (http://www.fwo.be/en)
+# and the Department of Economy, Science and Innovation (EWI) (http://www.ewi-vlaanderen.be/en).
+#
+# https://github.com/easybuilders/easybuild
+#
+# EasyBuild is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation v2.
+#
+# EasyBuild is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with EasyBuild.  If not, see <http://www.gnu.org/licenses/>.
+##
+"""
+EasyBuild support for building and installing Julia packages, implemented as an easyblock
+
+@author: Victor Holanda (CSCS)
+@author: Samuel Omlin (CSCS)
+minor adjustments by Jens Henrik Goebbert (JSC)
+"""
+import os
+import sys
+
+import easybuild.tools.toolchain as toolchain
+
+from easybuild.framework.easyconfig import CUSTOM
+from easybuild.framework.extensioneasyblock import ExtensionEasyBlock
+from easybuild.tools.build_log import EasyBuildError
+from easybuild.tools.run import run_cmd, parse_log_for_error
+
+
+class JuliaPackage(ExtensionEasyBlock):
+    """
+    Install an Julia package as a separate module, or as an extension.
+    """
+
+    @staticmethod
+    def extra_options(extra_vars=None):
+        if extra_vars is None:
+            extra_vars = {}
+
+        extra_vars.update({
+            'system_name': [None, "Change julia's Project.toml pathname", CUSTOM],
+            'arch_name': [None, "Change julia's Project.toml pathname", CUSTOM],
+            'packagespec': [None, "Overwrite install options for Pkg.add(PackageSpec(<packagespec>))", CUSTOM],
+            'mpiexec': [None, "Set the mpiexec command", CUSTOM],
+            'mpiexec_args': [None, "Set the mpiexec command args", CUSTOM],
+            'mpi_path': [None, "Set the MPI installation path", CUSTOM],
+            'mpicc': [None, "Set mpicc command", "mpicc"],
+        })
+        return ExtensionEasyBlock.extra_options(extra_vars=extra_vars)
+
+    def __init__(self, *args, **kwargs):
+        super(JuliaPackage, self).__init__(*args, **kwargs)
+        self.package_name = self.name
+        names = self.package_name.split('.')
+        if len(names) > 1:
+            self.package_name = ''.join(names[:-1])
+
+        julia_env_name = os.getenv('EBJULIA_ENV_NAME', '')
+        self.depot = os.path.join(self.installdir, 'extensions')
+        self.projectdir = os.path.join(self.depot, 'environments', julia_env_name)
+        self.log.info("Depot for package installations: %s" % self.depot)
+
+    def patch_step(self, beginpath=None):
+        pass
+
+    def fetch_sources(self, sources=None, checksums=None):
+        pass
+
+    def extract_step(self):
+        """Source should not be extracted."""
+        pass
+
+    def configure_step(self):
+        """No configuration for installing Julia packages."""
+        pass
+
+    def build_step(self):
+        """No separate build step for Julia packages."""
+        pass
+
+    def make_julia_cmd(self, remove=False):
+        """Create a command to run in julia to install an julia package."""
+
+        if self.cfg['packagespec']:
+            package_spec = self.cfg['packagespec']
+        else:
+            package_spec = "name=\"%s\", version=\"%s\"" % (self.package_name, self.version)
+
+        pre_cmd = '%s unset EBJULIA_USER_DEPOT_PATH && unset EBJULIA_ADMIN_DEPOT_PATH && export JULIA_DEPOT_PATH=%s && export JULIA_PROJECT=%s' % (self.cfg['preinstallopts'], self.depot, self.projectdir)
+
+        if self.cfg['mpi_path']:
+            pre_cmd += ' && export JULIA_MPI_BINARY=system'
+            pre_cmd += ' && export JULIA_MPI_PATH="%s"' % self.cfg['mpi_path']
+
+        if self.cfg['mpiexec']:
+            pre_cmd += ' && export JULIA_MPIEXEC="%s"' % self.cfg['mpiexec']
+
+        if self.cfg['mpiexec_args']:
+            pre_cmd += ' && export JULIA_MPIEXEC_ARGS="%s"' % self.cfg['mpiexec_args']
+
+        if self.cfg['mpicc']:
+            pre_cmd += ' && export JULIA_MPICC="%s"' % self.cfg['mpicc']
+
+        if self.cfg['arch_name'] == 'gpu':
+            pre_cmd += ' && export JULIA_CUDA_USE_BINARYBUILDER=false'
+
+        if remove:
+            cmd = ' && '.join([pre_cmd, "julia --eval 'using Pkg; Pkg.rm(PackageSpec(%s))'" % package_spec])
+        else:
+            cmd = ' && '.join([pre_cmd, "julia --eval 'using Pkg; Pkg.add(PackageSpec(%s))'" % package_spec])
+
+        return cmd
+
+    def install_step(self):
+        """Install procedure for Julia packages."""
+
+        cmd = self.make_julia_cmd(remove=False)
+        cmdttdouterr, _ = run_cmd(cmd, log_all=True, simple=False, regexp=False)
+
+        cmderrors = parse_log_for_error(cmdttdouterr, regExp="^ERROR:")
+        if cmderrors:
+            cmd = self.make_julia_cmd(remove=True)
+            run_cmd(cmd, log_all=False, log_ok=False, simple=False, inp=sys.stdin, regexp=False)
+            raise EasyBuildError("Errors detected during installation of Julia package %s!", self.name)
+
+        self.log.info("Julia package %s installed succesfully" % self.name)
+
+    def run(self):
+        """Install Julia package as an extension."""
+        self.install_step()
+
+    def sanity_check_step(self, *args, **kwargs):
+        """
+        Custom sanity check for Julia packages
+        """
+        #NOTE: we don't use Pkg.status with arguments as only supported for Julia >=v1.1
+        cmd = "unset EBJULIA_USER_DEPOT_PATH && unset EBJULIA_ADMIN_DEPOT_PATH && export JULIA_DEPOT_PATH=%s && export JULIA_PROJECT=%s && julia --eval 'using Pkg; Pkg.status()'" % (self.depot, self.projectdir)
+        cmdttdouterr, _ = run_cmd(cmd, log_all=True, simple=False, regexp=False)
+        self.log.error("Julia package %s sanity returned %s" % (self.name, cmdttdouterr))
+        return len(parse_log_for_error(cmdttdouterr, regExp="%s\s+v%s" % (self.package_name, self.version))) != 0
diff --git a/Golden_Repo/j/Julia/Julia-1.7.0-gcccoremkl-11.2.0-2021.4.0.eb b/Golden_Repo/j/Julia/Julia-1.7.0-gcccoremkl-11.2.0-2021.4.0.eb
new file mode 100644
index 0000000000000000000000000000000000000000..9ae74523aa34f759dbd957ca0ee7fffca756a933
--- /dev/null
+++ b/Golden_Repo/j/Julia/Julia-1.7.0-gcccoremkl-11.2.0-2021.4.0.eb
@@ -0,0 +1,216 @@
+name = 'Julia'
+version = '1.7.0'
+
+homepage = 'https://julialang.org/'
+description = """Julia was designed from the beginning for high performance.
+Julia programs compile to efficient native code for multiple platforms via LLVM
+"""
+
+toolchain = {'name': 'gcccoremkl', 'version': '11.2.0-2021.4.0'}
+toolchainopts = {'pic': True, 'verbose': True}
+
+source_urls = ['https://github.com/JuliaLang/julia/releases/download/v%(version)s/']
+sources = ['julia-%(version)s-full.tar.gz']
+checksums = ['d40d83944f8e1709de1d6f7544e1a6721e091f70ba06b44c25b89bdba754dfa6']
+
+builddependencies = [
+    ('binutils', '2.37'),
+    ('git', '2.33.1', '-nodocs'),
+    ('CMake', '3.21.1', '', SYSTEM),
+]
+
+dependencies = [
+    ('Python', '3.9.6'),
+    ('GMP', '6.2.1'),
+    ('CUDA', '11.5', '', SYSTEM),
+    ('SciPy-bundle', '2021.10'),
+    ('matplotlib', '3.4.3'),
+    ('OpenGL', '2021b'),
+    ('OpenSSL', '1.1', '', SYSTEM),
+]
+
+skipsteps = ['configure']
+buildopts = " USE_SYSTEM_GMP=1 USE_INTEL_MKL=1 "
+installopts = "prefix=%(installdir)s "
+
+arch_name = 'gpu'
+
+exts_defaultclass = 'JuliaPackage'
+exts_list = [
+    # General Purpose
+    ('PackageCompiler.jl', '2.0.2', {
+        'source_tmpl': 'v%(version)s.tar.gz',
+        'source_urls': ['https://github.com/JuliaLang/PackageCompiler.jl/archive/'],
+        'checksums': ['1f82248057d57acbcb41bc7420d2955174cafa07865fca7e2e6f92a552fca841'],
+    }),
+    ('HTTP.jl', '0.9.17', {
+        'source_tmpl': 'v0.9.17.tar.gz',
+        'source_urls': ['https://github.com/JuliaWeb/HTTP.jl/archive/'],
+        'checksums': ['ce66e5a58c5439c9716e44d97fd03e9856718755dd2276789b5097eeb8d31ca4'],
+    }),
+    ('Parsers.jl', '2.1.2', {
+        'source_tmpl': 'v2.1.2.tar.gz',
+        'source_urls': ['https://github.com/JuliaData/Parsers.jl/archive/'],
+        'checksums': ['5c9dcf1607d6f7d199c0d3e1f58c7235b63a6fa9d14d41e41d222a7943f73558'],
+    }),
+    ('VersionParsing.jl', '1.2.0', {
+        'source_tmpl': 'v1.2.0.tar.gz',
+        'source_urls': ['https://github.com/JuliaInterop/VersionParsing.jl/archive/'],
+        'checksums': ['329f62b69dac7675cd12ede1d91fc1da2147f3e74c0d86606cb616b4d2719f51'],
+    }),
+    ('JSON.jl', '0.21.2', {
+        'source_tmpl': 'v0.21.2.tar.gz',
+        'source_urls': ['https://github.com/JuliaIO/JSON.jl/archive/'],
+        'checksums': ['505668060495089bde44e14f5865425654e17715158ea80c8e0badcfd5d2893d'],
+    }),
+    ('WebIO.jl', '0.8.16', {
+        'source_tmpl': 'v0.8.16.tar.gz',
+        'source_urls': ['https://github.com/JuliaGizmos/WebIO.jl/archive/'],
+        'checksums': ['c727d9f015f3c9b54972b2d10738ed26bc1ddd8a5fcb1fac7f26d4e665193a4e'],
+    }),
+    ('ProgressMeter.jl', '1.7.1', {
+        'source_tmpl': 'v1.7.1.tar.gz',
+        'source_urls': ['https://github.com/timholy/ProgressMeter.jl/archive/'],
+        'checksums': ['b9eaea12ec5b4e8e58069f9476321e23c5434027218cf596acbfe4ae9222c694'],
+    }),
+    ('Conda.jl', '1.6.0', {
+        'source_tmpl': 'v1.6.0.tar.gz',
+        'source_urls': ['https://github.com/JuliaPy/Conda.jl/archive/'],
+        'checksums': ['f1bd98719c059dfc115631bc23460910b7e2ae557d3246002936f2b3750f98b7'],
+    }),
+    ('PyCall.jl', '1.92.5', {
+        'source_tmpl': 'v1.92.5.tar.gz',
+        'source_urls': ['https://github.com/JuliaPy/PyCall.jl/archive/'],
+        'checksums': ['b441e41c5af1cd7ac39e200902b4f070138a2219fad46d6e49501a192af6775a'],
+    }),
+    ('LaTeXStrings.jl', '1.3.0', {
+        'source_tmpl': 'v1.3.0.tar.gz',
+        'source_urls': ['https://github.com/stevengj/LaTeXStrings.jl/archive/'],
+        'checksums': ['9754cee3991d3a92827112b60064b381bec62e383634984dc0cad1fbc3301bda'],
+    }),
+    ('DocumentFormat.jl', '3.2.4', {
+        'source_tmpl': 'v3.2.4.tar.gz',
+        'source_urls': ['https://github.com/julia-vscode/DocumentFormat.jl/archive/'],
+        'checksums': ['d282bb08aded9c9f46731837022d3667fa94f9a2e7446cfcf3e33d54d0bc99e2'],
+    }),
+    # Data Science
+    ('CSV.jl', '0.9.1', {
+        'source_tmpl': 'v0.9.1.tar.gz',
+        'source_urls': ['https://github.com/JuliaData/CSV.jl/archive/'],
+        'checksums': ['1c8a67f4f06cb4c85349d2901f486a8d4d5d9b0c5a453876013d49fd6e56f40c'],
+    }),
+    ('DataFrames.jl', '1.2.2', {
+        'source_tmpl': 'v1.2.2.tar.gz',
+        'source_urls': ['https://github.com/JuliaData/DataFrames.jl/archive/'],
+        'checksums': ['9bd034e4185f0b8d5e85bcc0ea3596c068b7387acef2c3b2f92bb800581ab6e7'],
+    }),
+    ('Arrow.jl', '2.2.0', {
+        'source_tmpl': 'v2.2.0.tar.gz',
+        'source_urls': ['https://github.com/JuliaData/Arrow.jl/archive/'],
+        'checksums': ['af0d92896fda48eb559971529cfb30be5cf5c4a3fa5e67723ae50c22ec32a67f'],
+    }),
+    ('OnlineStats.jl', '1.5.13', {
+        'source_tmpl': 'v1.5.13.tar.gz',
+        'source_urls': ['https://github.com/joshday/OnlineStats.jl/archive/'],
+        'checksums': ['72d38bbdd65caf069dbd5d216658334817eeae5d0dae03f483fb3459cf884edc'],
+    }),
+    ('Query.jl', '1.0.0', {
+        'source_tmpl': 'v1.0.0.tar.gz',
+        'source_urls': ['https://github.com/queryverse/Query.jl/archive/'],
+        'checksums': ['76c05e3ffc8f3c2ce2cd3f6824f40a107cdba6fc58c4ce42de2289132de988e0'],
+    }),
+    # Scientific Domains
+    ('GSL.jl', '1.0.1', {
+        'source_tmpl': 'v1.0.1.tar.gz',
+        'source_urls': ['https://github.com/JuliaMath/GSL.jl/archive/refs/tags/'],
+        'checksums': ['91a5acbb752610c5989b9acef126f2231f612debb7ba6d1d4625c68d2af5776e'],
+    }),
+    ('DifferentialEquations.jl', '6.20.0', {
+        'source_tmpl': 'v6.20.0.tar.gz',
+        'source_urls': ['https://github.com/SciML/DifferentialEquations.jl/archive/'],
+        'checksums': ['6cb82c5df713c762bdbdd2e3e320c2f8e7bdf47d0a840e229d044223f408a067'],
+    }),
+    ('Distributions.jl', '0.24.18', {
+        'source_tmpl': 'v0.24.18.tar.gz',
+        'source_urls': ['https://github.com/JuliaStats/Distributions.jl/archive/'],
+        'checksums': ['471464cf0a60be21338b9252464e5cf9f0f34a48ade1d24270fd27439e6218ac'],
+    }),
+    ('Optim.jl', '1.5.0', {
+        'source_tmpl': 'v1.5.0.tar.gz',
+        'source_urls': ['https://github.com/JuliaNLSolvers/Optim.jl/archive/'],
+        'checksums': ['a26b2e2f006494c26d3ec94c2c019e3e63017cf83b94dda25edf53210200bca7'],
+    }),
+    ('IterativeSolvers.jl', '0.9.2', {
+        'source_tmpl': 'v0.9.2.tar.gz',
+        'source_urls': ['https://github.com/JuliaLinearAlgebra/IterativeSolvers.jl/archive/'],
+        'checksums': ['95fbfa39aa68e989ae6bad2f51ce0fe5635ba3f3375d0ea4d9422e77ff924a9b'],
+    }),
+    ('AbstractFFTs.jl', '1.0.1', {
+        'source_tmpl': 'v1.0.1.tar.gz',
+        'source_urls': ['https://github.com/JuliaMath/AbstractFFTs.jl/archive/'],
+        'checksums': ['91a5acbb752610c5989b9acef126f2231f612debb7ba6d1d4625c68d2af5776e'],
+    }),
+    ('OrdinaryDiffEq.jl', '5.68.0', {
+        'source_tmpl': 'v5.68.0.tar.gz',
+        'source_urls': ['https://github.com/SciML/OrdinaryDiffEq.jl/archive/'],
+        'checksums': ['f6ba667089421cc0eac68036a39eb041b2e4c8bb6f72c19ea98cc5e229c97070'],
+    }),
+    ('SpecialFunctions.jl', '1.8.1', {
+        'source_tmpl': 'v1.8.1.tar.gz',
+        'source_urls': ['https://github.com/JuliaMath/SpecialFunctions.jl/archive/'],
+        'checksums': ['94d061a62a379024010b9b4aac5eee075133617c683e27681f8bedcf3f16c76e'],
+    }),
+    ('JuMP.jl', '0.22.1', {
+        'source_tmpl': 'v0.22.1.tar.gz',
+        'source_urls': ['https://github.com/jump-dev/JuMP.jl/archive/'],
+        'checksums': ['96b77527641aa5771240dba23290727c84da3c631e2cc5a1a85342262bf8beee'],
+    }),
+    # Visualization
+    ('GR.jl', '0.62.1', {
+        'source_tmpl': 'v0.62.1.tar.gz',
+        'source_urls': ['https://github.com/jheinen/GR.jl/archive/'],
+        'checksums': ['7da2bb2b689a5e6ea123625f6332ca7e2d71f9c31f3ea5a284b540df484a67b6'],
+    }),
+    ('PlotlyJS.jl', '0.18.8', {
+        'source_tmpl': 'v0.18.8.tar.gz',
+        'source_urls': ['https://github.com/JuliaPlots/PlotlyJS.jl/archive/'],
+        'checksums': ['4ede1001b496420dc128b8f9fd52c762ca2a554c0b4a8e53c151783c988447c0'],
+    }),
+    ('PyPlot.jl', '2.10.0', {
+        'source_tmpl': 'v2.10.0.tar.gz',
+        'source_urls': ['https://github.com/JuliaPy/PyPlot.jl/archive/'],
+        'checksums': ['49a5be38b894a31843b1d4c8eba849c3581d0505d9325f76d6c471a947338fe3'],
+    }),
+    ('Plots.jl', '1.24.2', {
+        'source_tmpl': 'v1.24.2.tar.gz',
+        'source_urls': ['https://github.com/JuliaPlots/Plots.jl/archive/'],
+        'checksums': ['a021e6ed039616c2a407fe479da83baf8be33902eb88db9d232e5d5fed34b8c1'],
+    }),
+    ('UnicodePlots.jl', '2.5.0', {
+        'source_tmpl': 'v2.5.0.tar.gz',
+        'source_urls': ['https://github.com/Evizero/UnicodePlots.jl/archive/'],
+        'checksums': ['aec66957ff453f85195001022d9b4e5fd9beaa38e5b66d1a2c85d3b3b6479eeb'],
+    }),
+    ('StatsPlots.jl', '0.14.29', {
+        'source_tmpl': 'v0.14.29.tar.gz',
+        'source_urls': ['https://github.com/JuliaPlots/StatsPlots.jl/archive/'],
+        'checksums': ['d3ff91e1d8d6e16136607cb7ceae0aaa675adfe5ceb27ac55020981ef6c09560'],
+    }),
+    # CUDA
+    ('CUDA.jl', '3.5.0', {
+        'source_tmpl': 'v3.5.0.tar.gz',
+        'source_urls': ['https://github.com/JuliaGPU/CUDA.jl/archive/'],
+        'checksums': ['4c09ccfa78c5b9fba183edf2faa96b015c218305a0ae3ba318df5437e1746818'],
+    }),
+]
+
+modextravars = {
+    'JULIA_CUDA_USE_BINARYBUILDER': 'false',
+}
+
+sanity_check_paths = {
+    'files': ['bin/julia', 'include/julia/julia.h', 'lib/libjulia.so'],
+    'dirs': ['bin', 'etc', 'include', 'lib', 'share']
+}
+
+moduleclass = 'lang'
diff --git a/Golden_Repo/j/Julia/Julia-1.7.0-gomkl-2021b.eb b/Golden_Repo/j/Julia/Julia-1.7.0-gomkl-2021b.eb
new file mode 100644
index 0000000000000000000000000000000000000000..0ecbb2310cf32ca82e25e14572d7aaf223f910c5
--- /dev/null
+++ b/Golden_Repo/j/Julia/Julia-1.7.0-gomkl-2021b.eb
@@ -0,0 +1,230 @@
+name = 'Julia'
+version = '1.7.0'
+
+homepage = 'https://julialang.org/'
+description = """Julia was designed from the beginning for high performance.
+Julia programs compile to efficient native code for multiple platforms via LLVM
+"""
+
+toolchain = {'name': 'gomkl', 'version': '2021b'}
+toolchainopts = {'usempi': True, 'pic': True}
+
+source_urls = ['https://github.com/JuliaLang/julia/releases/download/v%(version)s/']
+sources = ['julia-%(version)s-full.tar.gz']
+checksums = ['d40d83944f8e1709de1d6f7544e1a6721e091f70ba06b44c25b89bdba754dfa6']
+
+builddependencies = [
+    ('binutils', '2.37'),
+    ('git', '2.33.1', '-nodocs'),
+    ('CMake', '3.21.1', '', SYSTEM),
+]
+
+dependencies = [
+    ('Python', '3.9.6'),
+    ('GMP', '6.2.1'),
+    ('CUDA', '11.5', '', SYSTEM),
+    ('SciPy-bundle', '2021.10', '', ('gcccoremkl', '11.2.0-2021.4.0')),
+    ('matplotlib', '3.4.3', '', ('gcccoremkl', '11.2.0-2021.4.0')),
+    ('OpenGL', '2021b'),
+    ('OpenSSL', '1.1', '', SYSTEM),
+]
+
+skipsteps = ['configure']
+buildopts = " USE_SYSTEM_GMP=1 USE_INTEL_MKL=1 "
+installopts = "prefix=%(installdir)s "
+
+arch_name = 'gpu'
+
+exts_defaultclass = 'JuliaPackage'
+exts_list = [
+    # General Purpose
+    ('PackageCompiler.jl', '2.0.2', {
+        'source_tmpl': 'v%(version)s.tar.gz',
+        'source_urls': ['https://github.com/JuliaLang/PackageCompiler.jl/archive/'],
+        'checksums': ['1f82248057d57acbcb41bc7420d2955174cafa07865fca7e2e6f92a552fca841'],
+    }),
+    ('HTTP.jl', '0.9.17', {
+        'source_tmpl': 'v0.9.17.tar.gz',
+        'source_urls': ['https://github.com/JuliaWeb/HTTP.jl/archive/'],
+        'checksums': ['ce66e5a58c5439c9716e44d97fd03e9856718755dd2276789b5097eeb8d31ca4'],
+    }),
+    ('Parsers.jl', '2.1.2', {
+        'source_tmpl': 'v2.1.2.tar.gz',
+        'source_urls': ['https://github.com/JuliaData/Parsers.jl/archive/'],
+        'checksums': ['5c9dcf1607d6f7d199c0d3e1f58c7235b63a6fa9d14d41e41d222a7943f73558'],
+    }),
+    ('VersionParsing.jl', '1.2.0', {
+        'source_tmpl': 'v1.2.0.tar.gz',
+        'source_urls': ['https://github.com/JuliaInterop/VersionParsing.jl/archive/'],
+        'checksums': ['329f62b69dac7675cd12ede1d91fc1da2147f3e74c0d86606cb616b4d2719f51'],
+    }),
+    ('JSON.jl', '0.21.2', {
+        'source_tmpl': 'v0.21.2.tar.gz',
+        'source_urls': ['https://github.com/JuliaIO/JSON.jl/archive/'],
+        'checksums': ['505668060495089bde44e14f5865425654e17715158ea80c8e0badcfd5d2893d'],
+    }),
+    ('WebIO.jl', '0.8.16', {
+        'source_tmpl': 'v0.8.16.tar.gz',
+        'source_urls': ['https://github.com/JuliaGizmos/WebIO.jl/archive/'],
+        'checksums': ['c727d9f015f3c9b54972b2d10738ed26bc1ddd8a5fcb1fac7f26d4e665193a4e'],
+    }),
+    ('ProgressMeter.jl', '1.7.1', {
+        'source_tmpl': 'v1.7.1.tar.gz',
+        'source_urls': ['https://github.com/timholy/ProgressMeter.jl/archive/'],
+        'checksums': ['b9eaea12ec5b4e8e58069f9476321e23c5434027218cf596acbfe4ae9222c694'],
+    }),
+    ('Conda.jl', '1.6.0', {
+        'source_tmpl': 'v1.6.0.tar.gz',
+        'source_urls': ['https://github.com/JuliaPy/Conda.jl/archive/'],
+        'checksums': ['f1bd98719c059dfc115631bc23460910b7e2ae557d3246002936f2b3750f98b7'],
+    }),
+    ('PyCall.jl', '1.92.5', {
+        'source_tmpl': 'v1.92.5.tar.gz',
+        'source_urls': ['https://github.com/JuliaPy/PyCall.jl/archive/'],
+        'checksums': ['b441e41c5af1cd7ac39e200902b4f070138a2219fad46d6e49501a192af6775a'],
+    }),
+    ('LaTeXStrings.jl', '1.3.0', {
+        'source_tmpl': 'v1.3.0.tar.gz',
+        'source_urls': ['https://github.com/stevengj/LaTeXStrings.jl/archive/'],
+        'checksums': ['9754cee3991d3a92827112b60064b381bec62e383634984dc0cad1fbc3301bda'],
+    }),
+    ('DocumentFormat.jl', '3.2.4', {
+        'source_tmpl': 'v3.2.4.tar.gz',
+        'source_urls': ['https://github.com/julia-vscode/DocumentFormat.jl/archive/'],
+        'checksums': ['d282bb08aded9c9f46731837022d3667fa94f9a2e7446cfcf3e33d54d0bc99e2'],
+    }),
+    # Data Science
+    ('CSV.jl', '0.9.1', {
+        'source_tmpl': 'v0.9.1.tar.gz',
+        'source_urls': ['https://github.com/JuliaData/CSV.jl/archive/'],
+        'checksums': ['1c8a67f4f06cb4c85349d2901f486a8d4d5d9b0c5a453876013d49fd6e56f40c'],
+    }),
+    ('DataFrames.jl', '1.2.2', {
+        'source_tmpl': 'v1.2.2.tar.gz',
+        'source_urls': ['https://github.com/JuliaData/DataFrames.jl/archive/'],
+        'checksums': ['9bd034e4185f0b8d5e85bcc0ea3596c068b7387acef2c3b2f92bb800581ab6e7'],
+    }),
+    ('Arrow.jl', '2.2.0', {
+        'source_tmpl': 'v2.2.0.tar.gz',
+        'source_urls': ['https://github.com/JuliaData/Arrow.jl/archive/'],
+        'checksums': ['af0d92896fda48eb559971529cfb30be5cf5c4a3fa5e67723ae50c22ec32a67f'],
+    }),
+    ('OnlineStats.jl', '1.5.13', {
+        'source_tmpl': 'v1.5.13.tar.gz',
+        'source_urls': ['https://github.com/joshday/OnlineStats.jl/archive/'],
+        'checksums': ['72d38bbdd65caf069dbd5d216658334817eeae5d0dae03f483fb3459cf884edc'],
+    }),
+    ('Query.jl', '1.0.0', {
+        'source_tmpl': 'v1.0.0.tar.gz',
+        'source_urls': ['https://github.com/queryverse/Query.jl/archive/'],
+        'checksums': ['76c05e3ffc8f3c2ce2cd3f6824f40a107cdba6fc58c4ce42de2289132de988e0'],
+    }),
+    # Scientific Domains
+    ('GSL.jl', '1.0.1', {
+        'source_tmpl': 'v1.0.1.tar.gz',
+        'source_urls': ['https://github.com/JuliaMath/GSL.jl/archive/refs/tags/'],
+        'checksums': ['91a5acbb752610c5989b9acef126f2231f612debb7ba6d1d4625c68d2af5776e'],
+    }),
+    ('DifferentialEquations.jl', '6.20.0', {
+        'source_tmpl': 'v6.20.0.tar.gz',
+        'source_urls': ['https://github.com/SciML/DifferentialEquations.jl/archive/'],
+        'checksums': ['6cb82c5df713c762bdbdd2e3e320c2f8e7bdf47d0a840e229d044223f408a067'],
+    }),
+    ('Distributions.jl', '0.24.18', {
+        'source_tmpl': 'v0.24.18.tar.gz',
+        'source_urls': ['https://github.com/JuliaStats/Distributions.jl/archive/'],
+        'checksums': ['471464cf0a60be21338b9252464e5cf9f0f34a48ade1d24270fd27439e6218ac'],
+    }),
+    ('Optim.jl', '1.5.0', {
+        'source_tmpl': 'v1.5.0.tar.gz',
+        'source_urls': ['https://github.com/JuliaNLSolvers/Optim.jl/archive/'],
+        'checksums': ['a26b2e2f006494c26d3ec94c2c019e3e63017cf83b94dda25edf53210200bca7'],
+    }),
+    ('IterativeSolvers.jl', '0.9.2', {
+        'source_tmpl': 'v0.9.2.tar.gz',
+        'source_urls': ['https://github.com/JuliaLinearAlgebra/IterativeSolvers.jl/archive/'],
+        'checksums': ['95fbfa39aa68e989ae6bad2f51ce0fe5635ba3f3375d0ea4d9422e77ff924a9b'],
+    }),
+    ('AbstractFFTs.jl', '1.0.1', {
+        'source_tmpl': 'v1.0.1.tar.gz',
+        'source_urls': ['https://github.com/JuliaMath/AbstractFFTs.jl/archive/'],
+        'checksums': ['91a5acbb752610c5989b9acef126f2231f612debb7ba6d1d4625c68d2af5776e'],
+    }),
+    ('OrdinaryDiffEq.jl', '5.68.0', {
+        'source_tmpl': 'v5.68.0.tar.gz',
+        'source_urls': ['https://github.com/SciML/OrdinaryDiffEq.jl/archive/'],
+        'checksums': ['f6ba667089421cc0eac68036a39eb041b2e4c8bb6f72c19ea98cc5e229c97070'],
+    }),
+    ('SpecialFunctions.jl', '1.8.1', {
+        'source_tmpl': 'v1.8.1.tar.gz',
+        'source_urls': ['https://github.com/JuliaMath/SpecialFunctions.jl/archive/'],
+        'checksums': ['94d061a62a379024010b9b4aac5eee075133617c683e27681f8bedcf3f16c76e'],
+    }),
+    ('JuMP.jl', '0.22.1', {
+        'source_tmpl': 'v0.22.1.tar.gz',
+        'source_urls': ['https://github.com/jump-dev/JuMP.jl/archive/'],
+        'checksums': ['96b77527641aa5771240dba23290727c84da3c631e2cc5a1a85342262bf8beee'],
+    }),
+    # Visualization
+    ('GR.jl', '0.62.1', {
+        'source_tmpl': 'v0.62.1.tar.gz',
+        'source_urls': ['https://github.com/jheinen/GR.jl/archive/'],
+        'checksums': ['7da2bb2b689a5e6ea123625f6332ca7e2d71f9c31f3ea5a284b540df484a67b6'],
+    }),
+    ('PlotlyJS.jl', '0.18.8', {
+        'source_tmpl': 'v0.18.8.tar.gz',
+        'source_urls': ['https://github.com/JuliaPlots/PlotlyJS.jl/archive/'],
+        'checksums': ['4ede1001b496420dc128b8f9fd52c762ca2a554c0b4a8e53c151783c988447c0'],
+    }),
+    ('PyPlot.jl', '2.10.0', {
+        'source_tmpl': 'v2.10.0.tar.gz',
+        'source_urls': ['https://github.com/JuliaPy/PyPlot.jl/archive/'],
+        'checksums': ['49a5be38b894a31843b1d4c8eba849c3581d0505d9325f76d6c471a947338fe3'],
+    }),
+    ('Plots.jl', '1.24.2', {
+        'source_tmpl': 'v1.24.2.tar.gz',
+        'source_urls': ['https://github.com/JuliaPlots/Plots.jl/archive/'],
+        'checksums': ['a021e6ed039616c2a407fe479da83baf8be33902eb88db9d232e5d5fed34b8c1'],
+    }),
+    ('UnicodePlots.jl', '2.5.0', {
+        'source_tmpl': 'v2.5.0.tar.gz',
+        'source_urls': ['https://github.com/Evizero/UnicodePlots.jl/archive/'],
+        'checksums': ['aec66957ff453f85195001022d9b4e5fd9beaa38e5b66d1a2c85d3b3b6479eeb'],
+    }),
+    ('StatsPlots.jl', '0.14.29', {
+        'source_tmpl': 'v0.14.29.tar.gz',
+        'source_urls': ['https://github.com/JuliaPlots/StatsPlots.jl/archive/'],
+        'checksums': ['d3ff91e1d8d6e16136607cb7ceae0aaa675adfe5ceb27ac55020981ef6c09560'],
+    }),
+    # MPI
+    ('MPI.jl', '0.19.2', {
+        'mpi_path': '$EBROOTOPENMPI',
+        'mpiexec': 'srun',
+        'source_tmpl': 'v0.19.2.tar.gz',
+        'source_urls': ['https://github.com/JuliaParallel/MPI.jl/archive/'],
+        'checksums': ['5edcc1baf35c5535c1688c45b355bc67d91ac95ea717f7f92c4f26a6e2ff2283'],
+    }),
+    # CUDA
+    ('CUDA.jl', '3.5.0', {
+        'source_tmpl': 'v3.5.0.tar.gz',
+        'source_urls': ['https://github.com/JuliaGPU/CUDA.jl/archive/'],
+        'checksums': ['4c09ccfa78c5b9fba183edf2faa96b015c218305a0ae3ba318df5437e1746818'],
+    }),
+]
+
+modextravars = {
+    'JULIA_MPICC': 'mpicc',
+    'JULIA_MPIEXEC': 'srun',
+    #  'JULIA_MPIEXEC_ARGS': '',
+    'JULIA_MPI_ABI': 'OpenMPI',
+    'JULIA_MPI_BINARY': 'system',
+    'JULIA_MPI_PATH': '$::env(EBROOTOPENMPI)',
+    'JULIA_CUDA_USE_BINARYBUILDER': 'false',
+}
+
+sanity_check_paths = {
+    'files': ['bin/julia', 'include/julia/julia.h', 'lib/libjulia.so'],
+    'dirs': ['bin', 'etc', 'include', 'lib', 'share']
+}
+
+moduleclass = 'lang'