Commit Graph

42 Commits (master)

Author SHA1 Message Date
Daniel Martí 975f608c3d CHANGELOG: add entry for v0.12.1 3 months ago
Daniel Martí f3f57e361d
CHANGELOG: finish up for a release
The trash block generator docs aren't ready yet, they will come soon.
This is not a release blocker, given that the control flow obfuscator
is experimental and opt-in for now.
3 months ago
Daniel Martí 7a67952494 CHANGELOG: draft release notes for v0.12.0 3 months ago
Daniel Martí 02175c5018
CHANGELOG: finalise for v0.11.0 6 months ago
Daniel Martí 9378ec959a CHANGELOG: start drafting the next release notes 6 months ago
Daniel Martí 8f7248939c CHANGELOG: add entry for v0.10.1
No longer linking to issues manually, since GitHub does it for us
in the releases markdown rendering.
11 months ago
Daniel Martí d3763143bd
ready changelog for release 12 months ago
Daniel Martí 155bc3228e CHANGELOG: add entry for the imminent v0.10.0
Starting to explain new features in more detail.
A bullet list of single lines can be enough for most bug fixes,
but some of the big refactors like SSA or caching need some context.
12 months ago
Daniel Martí 89facf1648 CHANGELOG: prepare for v0.9.3 1 year ago
Daniel Martí 08302ed5fc prepare changelog for v0.9.2
I will do the tag tomorrow morning.
1 year ago
Daniel Martí f34be3f572 CHANGELOG: prepare for v0.9.1 release 1 year ago
Daniel Martí 71eda055c2
CHANGELOG: prepare for v0.9.0 1 year ago
Daniel Martí 294450fdc3 CHANGELOG: draft for v0.9.0 1 year ago
Daniel Martí 82b955dfe1
CHANGELOG: release v0.8.0 1 year ago
Daniel Martí 89f873bba4 CHANGELOG: note the previous fix in the changelog 1 year ago
Daniel Martí 481e3a1f09 default to GOGARBLE=*, stop using GOPRIVATE
We can drop the code that kicked in when GOGARBLE was empty.
We can also add the value in addGarbleToHash unconditionally,
as we never allow it to be empty.

In the tests, remove all GOGARBLE lines where it just meant "obfuscate
everything" or "obfuscate the entire main module".

cgo.txtar had "obfuscate everything" as a separate step,
so remove it entirely.

linkname.txtar started failing because the imported package did not
import strings, so listPackage errored out. This wasn't a problem when
strings itself wasn't obfuscated, as transformLinkname silently left
strings.IndexByte untouched. It is a problem when IndexByte does get
obfuscated. Make that kind of listPackage error visible, and fix it.

reflect.txtar started failing with "unreachable method" runtime throws.
It's not clear to me why; it appears that GOGARBLE=* makes the linker
think that ExportedMethodName is suddenly unreachable.
Work around the problem by making the method explicitly reachable,
and leave a TODO as a reminder to investigate.

Finally, gogarble.txtar no longer needs to test for GOPRIVATE.
The rest of the test is left the same, as we still want the various
values for GOGARBLE to continue to work just like before.

Fixes #594.
1 year ago
Daniel Martí 41a09ad72e initial changelog draft for v0.8.0 1 year ago
Daniel Martí b0b67ab436 CHANGELOG: releasing v0.7.2 2 years ago
Daniel Martí 3967f8aeaa finish up changelog for 0.7.2 2 years ago
Daniel Martí 9d46fe917a avoid a type assertion panic with generic code
I was wrongly assumed that, if `used` has an `Elem` method,
then `origin` must too. But it does not if it's a type parameter.

Add a test case too, which panicked before the fix.

Fixes #577.
2 years ago
Daniel Martí 8ad374d2fb start testing on Go 1.19.x
While here, start the changelog for the upcoming release,
which will likely be a bugfix release as it's a bit early to drop 1.18.

We also bump staticcheck to get a version that supports 1.19.

I also noticed the "Go version X or newer" messages were slightly weird
and inconsistent. Our policy, per the README, is "Go version X or newer",
so the errors given to the user were unnecessarily confusing.
For example, now that Go 1.19 is out, we shouldn't simply recommend that
they upgrade to 1.18; we should recommend 1.18 or later.
2 years ago
Daniel Martí d342de4099 CHANGELOG: v0.7.1 happening today 2 years ago
Daniel Martí 3acbc571d2 draft changelog for the upcoming release
The changes are all fairly minor and non-breaking,
and the last release was less than two months ago,
so a bugfix release sounds like the right choice.
2 years ago
Daniel Martí bb3f24648d CHANGELOG: v0.7.0 happening today 2 years ago
Daniel Martí c9337022a0 bump gotip and x/exp, mention 1.19 in the changelog 2 years ago
Daniel Martí f37561589b properly quote the path to garble in -toolexec
If we don't quote it, paths containing spaces or quote characters will
fail. For instance, the added test without the fix fails:

        > env NAME='with spaces'
        > mkdir $NAME
        > cp $EXEC_PATH $NAME/garble$exe
        > exec $NAME/garble$exe build main.go
        [stderr]
        go tool compile: fork/exec $WORK/with: no such file or directory
        exit status 1

Luckily, the fix is easy: we bundle Go's cmd/internal/quoted package,
which implements a QuotedJoin API for this very purpose.

Fixes #544.
2 years ago
Daniel Martí b3e6b7a93a prepare changelog for v0.7.0
I'll probably do the release next week. Get ready for it.
2 years ago
Daniel Martí 0b6769c807 remove duplicate go:generate directive
I hadn't noticed that cmd/bundle prints its own go:generate directive.
I guess that makes sense for the average user running it directly,
but that doesn't apply to us, and we end up with duplicate directives.

Before:

	$ go generate -n
	bundle -o cmdgo_quoted.go -prefix cmdgoQuoted cmd/internal/quoted
	go run golang.org/x/tools/cmd/bundle@v0.1.9 -o cmdgo_quoted.go -prefix cmdgoQuoted cmd/internal/quoted

After:

	$ go generate -n
	go run golang.org/x/tools/cmd/bundle@v0.1.9 -o cmdgo_quoted.go -prefix cmdgoQuoted cmd/internal/quoted
	sed -i /go:generate/d cmdgo_quoted.go

While here, I made a typo in the last release notes, because of course.
I already edited that out in the GitHub release.
2 years ago
Daniel Martí 7608d524a5 CHANGELOG: v0.6.0 is happening one day late 2 years ago
Daniel Martí 13c0c930ee prepare changelog for v0.6.0
This time including links to issues, because I think that can be helpful
for those wanting to read more into each topic.

While here, to make the release links stand out more,
add the "v" prefix. This also matches the release names themselves.
2 years ago
Daniel Martí f1880b688c finish changelog for v0.5.1
Include Andrew's last change,
which was an easy improvement and has a low chance of regressions.
2 years ago
Daniel Martí 87799a5e4e CHANGELOG: draft for v0.5.1 2 years ago
Daniel Martí 4f0657a19a prepare for v0.5.0
While here, add a TODO I forgot about, and run gofumpt.

Also bump all test timeouts slightly,
as the Mac and Windows hosted runners are a bit slow
and I've hit failures twice recently.
2 years ago
Daniel Martí d146d82d33 prepare changelog for 0.5.0 2 years ago
Daniel Martí c76c4196af prepare changelog for 0.4.0 3 years ago
Daniel Martí 993c5fbbe8 finalize changelog for v0.3.0 3 years ago
Daniel Martí aba3b36218 start writing the upcoming changelog 3 years ago
Daniel Martí ba4c46eb09 CHANGELOG: finish v0.2.0 draft
Mention two more bugfixes. Not the initial Go 1.17 support just yet,
because coincidentally it broke in the past 24h due to upstream changes.

Also tweak some of the other wording to be clearer.
3 years ago
Daniel Martí 91dd310bfe CHANGELOG: start drafting for v0.2.0 3 years ago
Daniel Martí 06a7a21e17
changelog: forgot to add github link (#271)
Otherwise the [0.1.0] link doesn't render at all.
3 years ago
Daniel Martí 1fcf50bbdd release v0.1.0 3 years ago
Daniel Martí 2a9c0b7bf4
prepare for the first release (#264)
First, write a changelog file. We will use GitHub releases, but the
content in those is not stored in git nor is it portable or machine
readable. The canonical place for the changelog is here.

Second, disable 'garble test', as it is entirely broken. Issue #241
tracks fixing and re-enabling it, which will most likely happen for the
next release.

Third, disable the undocumented 'garble list'. This was added as part of
'garble reverse', but it never got used. I can't think of any reason why
any end user would prefer it over 'go list', either.

'garble reverse' remains enabled, but undocumented as it isn't fully
functional yet. Until it supports position information, it's not
particularly useful to end users. But it's not broken either, so it can
remain where it is.

Fourth, update the '-tiny' size reduction numbers in the README. Since
we removed the in-place modification of object files, we are no longer
able to do such an aggressive stripping of info. Garble itself drops in
size by 2%, so replace the old 6-10% estimate by 2-5%. We probably will
gain some of this back in the near future.

Finally, fix the indentation formatting of the README to consistently
use tabs.
3 years ago