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

dgraph-io / ristretto
74%
main: 74%

Build:
Build:
LAST BUILD BRANCH: fix-ticker-leak
DEFAULT BRANCH: main
Repo Added 07 Oct 2022 06:16PM UTC
Files 23
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

LAST BUILD ON BRANCH remove_glog
branch: remove_glog
CHANGE BRANCH
x
Reset
  • remove_glog
  • aman/cleanup
  • aman/lint
  • chore-fix-typo-error
  • cleanup_ticker_config
  • docs/format_readme
  • evan.jones/dropupdates-flaky
  • evan.jones/ristretto-docs
  • fix-ticker-leak
  • frankreh/fix-sketch3
  • glogless
  • joshua/sec
  • main
  • synk-fork
  • typo

29 Aug 2023 01:45PM UTC coverage: 73.696%. Remained the same
6020532821

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>

2219 of 3011 relevant lines covered (73.7%)

2511065.33 hits per line

Relevant lines Covered
Build:
Build:
3011 RELEVANT LINES 2219 COVERED LINES
2511065.33 HITS PER LINE
Source Files on remove_glog
  • Tree
  • List 23
  • Changed 10
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
6020532821 remove_glog 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 m... push 30 Aug 2023 04:32AM UTC web-flow
73.7
See All Builds (7649)
  • Repo on GitHub
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

© 2025 Coveralls, Inc