• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

dgraph-io / ristretto / 6013144323
74%

Build:
DEFAULT BRANCH: main
Ran 29 Aug 2023 01:52PM UTC
Jobs 1
Files 23
Run time 2s
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

29 Aug 2023 01:52PM UTC coverage: 73.63% (-0.07%) from 73.696%
6013144323

push

web-flow
fix: support compilation to wasip1 (#344)

## Problem

I'm interested in getting ristretto to build to the new `wasip1` target,
but it fails due to ristretto's assumption that the program is being
compiled to a unix system where files can be mapped to memory. At this
time, the `x/sys/unix` package does not consider `wasip1` to be a unix
platform, and memory mapping isn't supported either when compiling to
WebAssembly.

```
$ GOOS=wasip1 GOARCH=wasm gotip build
package github.com/dgraph-io/ristretto
	imports github.com/dgraph-io/ristretto/z
	imports golang.org/x/sys/unix: build constraints exclude all Go files in /go/pkg/mod/golang.org/x/sys@v0.0.0-20221010170243-090e33056c14/unix
```

## Solution

The proposed solution in this PR is to provide stubs implementations of
the memory mapping functions which return `ENOSYS` to indicate that the
functionalities are not available when compiled to `GOOS=wasip1`.

If I'm reading the code correctly, this means that persisting data
structures to a storage medium will not be supported, but the rest of
ristretto should work as expected.

I believe this to be a useful trade-off since many dependents of
ristretto only use the in-memory data structures (e.g.
https://github.com/DataDog/datadog-agent/blob/main/pkg/obfuscate/cache.go,
which is what I'm interested in getting to compile).

A more advanced solution could be to rework the `z.Buffer` internals so
the data structure can work on platforms where mapping files to memory
isn't supported; however, this represents a bigger undertaking, I would
like to first unblock dependencies by allowing the program to compile.

Signed-off-by: Achille Roussel <achille.roussel@gmail.com>

2217 of 3011 relevant lines covered (73.63%)

2509951.78 hits per line

Uncovered Existing Lines

Lines Coverage ∆ File
2
90.79
-0.51% cache.go
Jobs
ID Job ID Ran Files Coverage
1 6013144323.1 29 Aug 2023 01:52PM UTC 23
73.63
Source Files on build 6013144323
  • Tree
  • List 23
  • Changed 10
  • Source Changed 0
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • 3f6b44a6 on github
  • Prev Build on main (#5876501172)
  • Next Build on main (#6013703125)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc