Comments (17)
You must have some really weird config. Can you share spack config blame config
?
from spack.
spack config blame config
--- config:
/root/.spack/config.yaml:2 build_stage:
/root/.spack/config.yaml:3 - /scratch/spack
/root/.spack/config.yaml:4 - /tmp
/root/.spack/config.yaml:5 - $tempdir/$user/spack-stage
/root/.spack/config.yaml:6 - $user_cache_path/stage
/cm/shared/apps/spack/current/etc/spack/config.yaml:4 install_tree:
/cm/shared/apps/spack/current/etc/spack/config.yaml:5 root: /cm/shared/spack/apps
/cm/shared/apps/spack/current/etc/spack/config.yaml:6 projections:
/cm/shared/apps/spack/current/etc/spack/config.yaml:7 all: ${ARCHITECTURE}/${COMPILER.NAME}-${COMPILER.VERSION}/${PACKAGE}-${VERSION}-${HASH}
/cm/shared/apps/spack/current/etc/spack/config.yaml:11 template_dirs:
/cm/shared/apps/spack/current/etc/spack/config.yaml:12 - $spack/share/spack/templates
/cm/shared/apps/spack/current/etc/spack/config.yaml:50 source_cache: $spack/var/spack/cache
/cm/shared/apps/spack/current/etc/spack/config.yaml:55 misc_cache: ~/.spack/cache
/cm/shared/apps/spack/current/etc/spack/config.yaml:61 connect_timeout: 10
/cm/shared/apps/spack/current/etc/spack/config.yaml:66 verify_ssl: True
/cm/shared/apps/spack/current/etc/spack/config.yaml:74 suppress_gpg_warnings: False
/cm/shared/apps/spack/current/etc/spack/config.yaml:80 install_missing_compilers: False
/cm/shared/apps/spack/current/etc/spack/config.yaml:85 checksum: True
/cm/shared/apps/spack/current/etc/spack/config.yaml:90 dirty: False
/cm/shared/apps/spack/current/etc/spack/config.yaml:98 build_language: C
/cm/shared/apps/spack/current/etc/spack/config.yaml:107 locks: True
/cm/shared/apps/spack/current/etc/spack/config.yaml:117 ccache: False
/cm/shared/apps/spack/current/etc/spack/config.yaml:124 db_lock_timeout: 3
/cm/shared/apps/spack/current/etc/spack/config.yaml:132 package_lock_timeout: null
/cm/shared/apps/spack/current/etc/spack/config.yaml:137 shared_linking:
/cm/shared/apps/spack/current/etc/spack/config.yaml:141 type: rpath
/cm/shared/apps/spack/current/etc/spack/config.yaml:142 bind: False
/cm/shared/apps/spack/current/etc/spack/config.yaml:143 allow_sgid: True
/cm/shared/apps/spack/current/etc/spack/defaults/config.yaml:37 license_dir: $spack/etc/spack/licenses
/cm/shared/apps/spack/current/etc/spack/defaults/config.yaml:77 test_stage: $user_cache_path/test
/cm/shared/apps/spack/current/etc/spack/defaults/config.yaml:125 deprecated: False
/cm/shared/apps/spack/current/etc/spack/defaults/config.yaml:152 url_fetch_method: urllib
/cm/shared/apps/spack/current/etc/spack/defaults/config.yaml:181 concretizer: clingo
/cm/shared/apps/spack/current/etc/spack/defaults/config.yaml:223 install_status: True
/cm/shared/apps/spack/current/etc/spack/defaults/config.yaml:227 binary_index_ttl: 600
/cm/shared/apps/spack/current/etc/spack/defaults/config.yaml:229 flags:
/cm/shared/apps/spack/current/etc/spack/defaults/config.yaml:231 keep_werror: none
/cm/shared/apps/spack/current/etc/spack/defaults/config.yaml:236 aliases:
/cm/shared/apps/spack/current/etc/spack/defaults/config.yaml:237 concretise: concretize
/cm/shared/apps/spack/current/etc/spack/defaults/config.yaml:238 containerise: containerize
/cm/shared/apps/spack/current/etc/spack/defaults/config.yaml:239 rm: remove
_builtin debug: False
_builtin build_jobs: 16
from spack.
FYI, it is not a general issue. I have been able to install [email protected] without problems.
from spack.
The projections
bit in /cm/shared/apps/spack/current/etc/spack/config.yaml
is very outdated, maybe easiest to just remove that file (I didn't check carefully but I think it's mostly shadowing the etc/defaults/config.yaml config.
from spack.
It is shadowing the defaults, just in the previous format (deprecated in 2018, removed this year).
from spack.
How do you suggest editing the file? I can even remove the whole config.yaml as suggested, but I need to provide the root path for back compatibility, I suppose.
install_tree:
root: /cm/shared/spack/apps
from spack.
You can leave just the necessary in etc/config.yaml
config:
install_tree:
root: /cm/shared/spack/apps
which overrides defaults
from spack.
I have changed the config.yaml to the bare minimum, but I still have the same problem. I have also tried with spack clean -a
but without luck
Error message
# spack install [email protected]%[email protected]~guile build_system=generic arch=linux-rhel8-x86_64 ==> Installing gmake-4.4.1-ryyw4gdcpr72wiif74hp4jqmgnh25hgl [1/1] ==> No binary for gmake-4.4.1-ryyw4gdcpr72wiif74hp4jqmgnh25hgl found: installing from source ==> Using cached archive: /cm/shared/apps/spack/current/var/spack/cache/_source-cache/archive/dd/dd16fb1d67bfab79a72f5e8390735c49e3e8e70b4945a15ab1f81ddb78658fb3.tar.gz ==> No patches needed for gmake ==> gmake: Executing phase: 'install' ==> Warning: Module file /cm/shared/spack/modulefiles/linux-rhel8-x86_64/gcc/8.5.0/gmake/4.4.1-ryyw4gd.lua exists and will not be overwritten ==> gmake: Successfully installed gmake-4.4.1-ryyw4gdcpr72wiif74hp4jqmgnh25hgl Stage: 10.05s. Install: 27.23s. Post-install: 0.58s. Total: 38.44s [+] /cm/shared/spack/apps/_linux-rhel8-x86_64/_gcc-_8.5.0/__spack.pkg.builtin.gmake.Gmake_object_at_0x14b6dc20c860_-_4.4.1-_ryyw4gdcpr72wiif74hp4jqmgnh25hgl ==> Warning: [email protected]%[email protected]~guile build_system=generic arch=linux-rhel8-x86_64/ryyw4gd is being updated in the database with prefix /cm/shared/spack/apps/linux-rhel8-x86_64/gcc-8.5.0/gmake-4.4.1-ryyw4gdcpr72wiif74hp4jqmgnh25hgl, but this directory does not contain an installation of the spec, due to: Install prefix /cm/shared/spack/apps/linux-rhel8-x86_64/gcc-8.5.0/gmake-4.4.1-ryyw4gdcpr72wiif74hp4jqmgnh25hgl does not exist. [root@pphpcmgmt01 spack]# spack find [email protected] ==> No package matches the query: [email protected]
FYI:
# spack config blame config
--- config:
/root/.spack/config.yaml:2 build_stage:
/root/.spack/config.yaml:3 - /scratch/spack
/root/.spack/config.yaml:4 - /tmp
/root/.spack/config.yaml:5 - $tempdir/$user/spack-stage
/root/.spack/config.yaml:6 - $user_cache_path/stage
/cm/shared/apps/spack/current/etc/spack/config.yaml:4 install_tree:
/cm/shared/apps/spack/current/etc/spack/config.yaml:5 root: /cm/shared/spack/apps
/cm/shared/apps/spack/current/etc/spack/defaults/config.yaml:21 projections:
/cm/shared/apps/spack/current/etc/spack/defaults/config.yaml:22 all: '{architecture}/{compiler.name}-{compiler.version}/{name}-{version}-{hash}'
/cm/shared/apps/spack/current/etc/spack/defaults/config.yaml:33 template_dirs:
/cm/shared/apps/spack/current/etc/spack/defaults/config.yaml:34 - $spack/share/spack/templates
/cm/shared/apps/spack/current/etc/spack/defaults/config.yaml:37 license_dir: $spack/etc/spack/licenses
/cm/shared/apps/spack/current/etc/spack/defaults/config.yaml:77 test_stage: $user_cache_path/test
/cm/shared/apps/spack/current/etc/spack/defaults/config.yaml:81 source_cache: $spack/var/spack/cache
/cm/shared/apps/spack/current/etc/spack/defaults/config.yaml:90 misc_cache: $user_cache_path/cache
/cm/shared/apps/spack/current/etc/spack/defaults/config.yaml:96 connect_timeout: 10
/cm/shared/apps/spack/current/etc/spack/defaults/config.yaml:101 verify_ssl: True
/cm/shared/apps/spack/current/etc/spack/defaults/config.yaml:109 suppress_gpg_warnings: False
/cm/shared/apps/spack/current/etc/spack/defaults/config.yaml:115 install_missing_compilers: False
/cm/shared/apps/spack/current/etc/spack/defaults/config.yaml:120 checksum: True
/cm/shared/apps/spack/current/etc/spack/defaults/config.yaml:125 deprecated: False
/cm/shared/apps/spack/current/etc/spack/defaults/config.yaml:130 dirty: False
/cm/shared/apps/spack/current/etc/spack/defaults/config.yaml:138 build_language: C
/cm/shared/apps/spack/current/etc/spack/defaults/config.yaml:147 locks: True
/cm/shared/apps/spack/current/etc/spack/defaults/config.yaml:152 url_fetch_method: urllib
/cm/shared/apps/spack/current/etc/spack/defaults/config.yaml:165 ccache: False
/cm/shared/apps/spack/current/etc/spack/defaults/config.yaml:181 concretizer: clingo
/cm/shared/apps/spack/current/etc/spack/defaults/config.yaml:188 db_lock_timeout: 60
/cm/shared/apps/spack/current/etc/spack/defaults/config.yaml:196 package_lock_timeout: null
/cm/shared/apps/spack/current/etc/spack/defaults/config.yaml:201 shared_linking:
/cm/shared/apps/spack/current/etc/spack/defaults/config.yaml:206 type: rpath
/cm/shared/apps/spack/current/etc/spack/defaults/config.yaml:212 bind: False
/cm/shared/apps/spack/current/etc/spack/defaults/config.yaml:217 allow_sgid: True
/cm/shared/apps/spack/current/etc/spack/defaults/config.yaml:223 install_status: True
/cm/shared/apps/spack/current/etc/spack/defaults/config.yaml:227 binary_index_ttl: 600
/cm/shared/apps/spack/current/etc/spack/defaults/config.yaml:229 flags:
/cm/shared/apps/spack/current/etc/spack/defaults/config.yaml:231 keep_werror: none
/cm/shared/apps/spack/current/etc/spack/defaults/config.yaml:236 aliases:
/cm/shared/apps/spack/current/etc/spack/defaults/config.yaml:237 concretise: concretize
/cm/shared/apps/spack/current/etc/spack/defaults/config.yaml:238 containerise: containerize
/cm/shared/apps/spack/current/etc/spack/defaults/config.yaml:239 rm: remove
_builtin debug: False
_builtin build_jobs: 16
from spack.
this is the weirdest issue.
can you try a fresh clone of spack and spack install gmake
?
from spack.
Hello,
I have cloned a fresh version of spack, copied the old config.yaml, module.yaml and packages.yaml into etc/spack, but still I have the same problem when installing gmake.
Actually, after changing the config.yaml, I have experienced the same issue with several other packages, so I believe the problem is more general than gmake.
It seems to be the disconnect between folders naming at different stages, e.g.:
/cm/shared/spack/apps/_linux-rhel8-x86_64/_gcc-_8.5.0/__spack.pkg.builtin.gmake.Gmake_object_at_0x14b6dc20c860_-_4.4.1-_ryyw4gdcpr72wiif74hp4jqmgnh25hgl
vs
/cm/shared/spack/apps/linux-rhel8-x86_64/gcc-8.5.0/gmake-4.4.1-ryyw4gdcpr72wiif74hp4jqmgnh25hgl
I am adding my other config files for information
config.yaml.txt
modules.yaml.txt
packages.yaml.txt
Thanks
from spack.
I made some tests and this seems to work. Not sure it makes sense:
# git diff var/spack/repos/builtin/packages/gmake/package.py
diff --git a/var/spack/repos/builtin/packages/gmake/package.py b/var/spack/repos/builtin/packages/gmake/package.py
index 0cfbccb8..fe3a5911 100644
--- a/var/spack/repos/builtin/packages/gmake/package.py
+++ b/var/spack/repos/builtin/packages/gmake/package.py
@@ -73,7 +73,7 @@ def install(self, spec, prefix):
configure = Executable(join_path(self.stage.source_path, "configure"))
build_sh = Executable(join_path(self.stage.source_path, "build.sh"))
with working_dir(self.build_directory, create=True):
- configure(f"--prefix={prefix}", *self.configure_args())
+ configure("--prefix={0}".format(prefix), *self.configure_args())
build_sh()
os.mkdir(prefix.bin)
install("make", prefix.bin)
Now it installs gmake without errors, even if the hash is different
# spack install gmake
==> Installing gmake-4.4.1-aly4tzkyhzenadqw52pvgz6irpstp6zi [1/1]
==> No binary for gmake-4.4.1-aly4tzkyhzenadqw52pvgz6irpstp6zi found: installing from source
==> Using cached archive: /cm/shared/apps/spack/spack/var/spack/cache/_source-cache/archive/dd/dd16fb1d67bfab79a72f5e8390735c49e3e8e70b4945a15ab1f81ddb78658fb3.tar.gz
==> No patches needed for gmake
==> gmake: Executing phase: 'install'
==> gmake: Successfully installed gmake-4.4.1-aly4tzkyhzenadqw52pvgz6irpstp6zi
Stage: 0.61s. Install: 15.88s. Post-install: 1.08s. Total: 19.05s
[+] /cm/shared/spack/apps/linux-rhel8-x86_64/gcc-8.5.0/gmake-4.4.1-aly4tzkyhzenadqw52pvgz6irpstp6zi
What I do not understand is why before I was able to install [email protected]. I can still install [email protected] even if the hash is again different from before
# spack install [email protected]
==> Installing gmake-4.3-jltufnnn6rs4zcxfft4z2pbyw5efwxry [1/1]
==> No binary for gmake-4.3-jltufnnn6rs4zcxfft4z2pbyw5efwxry found: installing from source
==> Fetching https://mirror.spack.io/_source-cache/archive/e0/e05fdde47c5f7ca45cb697e973894ff4f5d79e13b750ed57d7b66d8defc78e19.tar.gz
==> Applied patch /cm/shared/apps/spack/spack/var/spack/repos/builtin/packages/gmake/findprog-in-ignore-directories.patch
==> gmake: Executing phase: 'install'
==> gmake: Successfully installed gmake-4.3-jltufnnn6rs4zcxfft4z2pbyw5efwxry
Stage: 1.89s. Install: 20.85s. Post-install: 0.96s. Total: 25.49s
[+] /cm/shared/spack/apps/linux-rhel8-x86_64/gcc-8.5.0/gmake-4.3-jltufnnn6rs4zcxfft4z2pbyw5efwxry
However I do not feel that satisfactory because it seems to me that the original prefix
/cm/shared/spack/apps/_linux-rhel8-x86_64/_gcc-_8.5.0/__spack.pkg.builtin.gmake.Gmake_object_at_0x14b6dc20c860_-_4.4.1-_ryyw4gdcpr72wiif74hp4jqmgnh25hgl
was correct, and the error is when it updates the database.
from spack.
Update. I have found that my issue is very similar to this. In my case I have "_" instead of "$"
Also in my case, I believe the problem is more general than gmake, given that several packages experience the same issue, but not everyone.
from spack.
This was with system python? I can't reproduce it with docker run -it --rm rockylinux:8
. The referenced issue seems to use a newer possibly non-system python.
In my case I have "_" instead of "$"
We started converting "unsafe" characters to _
, so probably you're getting $
too but mapped to _
.
from spack.
I can reproduce this output with something along the lines of
>>> spack.spec.Spec("gmake").concretized().format_path("${PACKAGE}-${VERSION}-${HASH}")
'__spack.pkg.builtin.gmake.Gmake_object_at_0x7fcca58f5dd0_-_4.4.1-_zswwpt4oddmlxpjnqqhbjdbkqmwh6jgt'
So then it definitely comes from this old style of projections:
/cm/shared/apps/spack/current/etc/spack/config.yaml:7 all: ${ARCHITECTURE}/${COMPILER.NAME}-${COMPILER.VERSION}/${PACKAGE}-${VERSION}-${HASH}
and potentially the reason it persists is that spec.prefix
looks in the db which may find a prefix under old config:
@property
def prefix(self):
...
if self._prefix is None:
upstream, record = spack.store.STORE.db.query_by_spec_hash(self.dag_hash())
if record and record.path:
self.prefix = record.path # maye this branch is followed?
else:
self.prefix = spack.store.STORE.layout.path_for_spec(self)
return self._prefix
while adding to the DB re-computes the projection under new config:
if not spec.external and directory_layout:
path = directory_layout.path_for_spec(spec)
from spack.
I'll submit a patch that throws an error when using old style ${UPPERCASE}
, cause this was a giant pain to figure out.
from spack.
Hello,
Thank you for your help.
I have implemented the changes but still having the same problem. This issue is very annoying...
# spack install gmake
==> Installing gmake-4.4.1-ryyw4gdcpr72wiif74hp4jqmgnh25hgl [1/1]
==> No binary for gmake-4.4.1-ryyw4gdcpr72wiif74hp4jqmgnh25hgl found: installing from source
==> Using cached archive: /cm/shared/apps/spack/spack/var/spack/cache/_source-cache/archive/dd/dd16fb1d67bfab79a72f5e8390735c49e3e8e70b4945a15ab1f81ddb78658fb3.tar.gz
==> No patches needed for gmake
==> gmake: Executing phase: 'install'
==> gmake: Successfully installed gmake-4.4.1-ryyw4gdcpr72wiif74hp4jqmgnh25hgl
Stage: 0.66s. Install: 15.63s. Post-install: 1.14s. Total: 19.23s
[+] /cm/shared/spack/apps/_linux-rhel8-x86_64/_gcc-_8.5.0/__spack.pkg.builtin.gmake.Gmake_object_at_0x14b6dc20c860_-_4.4.1-_ryyw4gdcpr72wiif74hp4jqmgnh25hgl
==> Warning: [email protected]%[email protected]~guile build_system=generic arch=linux-rhel8-x86_64/ryyw4gd is being updated in the database with prefix /cm/shared/spack/apps/linux-rhel8-x86_64/gcc-8.5.0/gmake-4.4.1-ryyw4gdcpr72wiif74hp4jqmgnh25hgl, but this directory does not contain an installation of the spec, due to: Install prefix /cm/shared/spack/apps/linux-rhel8-x86_64/gcc-8.5.0/gmake-4.4.1-ryyw4gdcpr72wiif74hp4jqmgnh25hgl does not exist.
diff --git a/lib/spack/spack/spec.py b/lib/spack/spack/spec.py
index 20e5c3ff..8c15a873 100644
--- a/lib/spack/spack/spec.py
+++ b/lib/spack/spack/spec.py
@@ -213,6 +213,19 @@ def __call__(self, match):
return clr.colorize(re.sub(_SEPARATORS, insert_color(), str(spec)) + "@.")
+OLD_STYLE_FMT_RE = re.compile(r"\${[A-Z]+}")
+
+
+def ensure_modern_format_string(fmt: str) -> None:
+ """Ensure that the format string does not contain old ${...} syntax."""
+ result = OLD_STYLE_FMT_RE.search(fmt)
+ if result:
+ raise SpecFormatStringError(
+ f"Format string `{fmt}` contains old syntax `{result.group(0)}`. "
+ "This is no longer supported."
+ )
+
+
@lang.lazy_lexicographic_ordering
class ArchSpec:
"""Aggregate the target platform, the operating system and the target microarchitecture."""
@@ -4360,6 +4373,7 @@ def format(self, format_string=DEFAULT_FORMAT, **kwargs):
that accepts a string and returns another one
"""
+ ensure_modern_format_string(format_string)
color = kwargs.get("color", False)
transform = kwargs.get("transform", {})
diff --git a/lib/spack/spack/test/spec_semantics.py b/lib/spack/spack/test/spec_semantics.py
index 87ed1e4b..08caba15 100644
--- a/lib/spack/spack/test/spec_semantics.py
+++ b/lib/spack/spack/test/spec_semantics.py
@@ -1517,3 +1517,9 @@ def test_edge_equality_does_not_depend_on_virtual_order():
assert edge1 == edge2
assert tuple(sorted(edge1.virtuals)) == edge1.virtuals
assert tuple(sorted(edge2.virtuals)) == edge1.virtuals
+
+
+def test_old_format_strings_trigger_error(default_mock_concretization):
+ s = Spec("a").concretized()
+ with pytest.raises(SpecFormatStringError):
+ s.format("${PACKAGE}-${VERSION}-${HASH}")
[root@pphpcmgmt01 spack]# spack config blame config
--- config:
/cm/shared/apps/spack/spack/etc/spack/config.yaml:4 install_tree:
/cm/shared/apps/spack/spack/etc/spack/config.yaml:5 root: /cm/shared/spack/apps
/cm/shared/apps/spack/spack/etc/spack/defaults/config.yaml:21 projections:
/cm/shared/apps/spack/spack/etc/spack/defaults/config.yaml:22 all: '{architecture}/{compiler.name}-{compiler.version}/{name}-{version}-{hash}'
...
from spack.
Update:
I have manually edited the db under /cm/shared/spack/apps/.spack-db/index.json and changed the path there. Now it compiles without problems.
The question is why the db has the wrong path in the first place and how to regenerate it with the right paths:
{
"database": {
"version": "7",
"installs": {
"ryyw4gdcpr72wiif74hp4jqmgnh25hgl": {
"spec": {
"name": "gmake",
"version": "4.4.1",
"arch": {
"platform": "linux",
"platform_os": "rhel8",
"target": "x86_64"
},
"compiler": {
"name": "gcc",
"version": "8.5.0"
},
"namespace": "builtin",
"parameters": {
"build_system": "generic",
"guile": false,
"cflags": [],
"cppflags": [],
"cxxflags": [],
"fflags": [],
"ldflags": [],
"ldlibs": []
},
"package_hash": "rqbjphrjxtwxymzynomtxmtox6tsd35pbp4722ep46u56drkz5tq====",
"hash": "ryyw4gdcpr72wiif74hp4jqmgnh25hgl"
},
"ref_count": 202,
"path": "/cm/shared/spack/apps/linux-rhel8-x86_64/gcc-8.5.0/gmake-4.4.1-ryyw4gdcpr72wiif74hp4jqmgnh25hgl",
"installed": true,
"explicit": true,
"installation_time": 1704297914.2720087,
"deprecated_for": null
},
from spack.
Related Issues (20)
- Avoid storing binary blobs as test files for sz compression HOT 4
- Installation issue: openmpi (Spack v0.21 & v0.22) with compiler [email protected] HOT 6
- Spec matrix: concretization failures when matrixing MPI dependency HOT 3
- Concretizer error for Python variant (+tkinter) HOT 2
- Installation issue: HIP package sets excessive environment variables in dependent package modulefiles
- cuda: `nvcc` is unable to find `-lcupti`
- Installation issue: [email protected]%[email protected]
- Installation issue: glibc iconv incomplete by default on fedora, needs libiconv HOT 11
- Environments: root specs are not always marked explicit HOT 5
- Add an option to shorten git.[commit] version in Spec.format() HOT 3
- Installation issue: `seacas 2022-10-14:2023-05-30` with `fmt@9` when `gcc` mixed with `apple-clang` HOT 5
- Installation issue: `vtk@9%gcc14` HOT 4
- Cannot use `config:shared_linking:bind:true` anymore HOT 1
- Cannot install musl HOT 2
- Installation issue: abinit
- Installation issue: gh
- Installation issue: kentutils HOT 1
- Spec syntax: semantic for `%` and `^` for compiler as deps
- Installation issue: [email protected] +cuda ~rocm fails to build
- Installation issue: metabat-2.15
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from spack.