sbinet

joined 3 years ago
 

hi there,

just a quick message to announce my latest small pet project of the week :

A simple (and incomplete) Go client for PeerTube1 (an alternative to Big Tech's video platforms).

Right now, the client can:

  • authenticate with a PeerTube server,
  • list accounts,
  • list videos for a given account,
  • upload videos for a given account,
  • remove videos for a given accounts.

There's also a simple peertube-cli command-line program to perform the things above:

$> go install git.sr.ht/~sbinet/peertube/cmd/peertube-cli
$> peertube-cli help
peertube-cli - runs peertube-cli commands and sub-commands

Commands:

    auth-add     authenticate with a PeerTube server
    auth-ls      list the known PeerTube servers
    auth-rm      remove a PeerTube login
    video-ls     list video(s) from a PeerTube server
    video-upload upload a video to a PeerTube server

Use "peertube-cli help <command>" for more information about a command.

It's not much, but it allowed me to ease the day-to-day work of uploading audio files for a podcast I am maintaining and authoring.

hth, -s

 

Here is the full playlist from the GopherConAU 2023 conference:

6
submitted 1 year ago* (last edited 1 year ago) by sbinet@lemmy.ml to c/golang@lemmy.ml
 

Your weekly appointment with the latest news about accepted/declined proposals.

 

A major Go language change proposal was published earlier this week: add range over int, range over func, and there's a good chance this change will make it into a future Go release. In this post I will discuss the motivation for this proposal, how it's going to work, and provide some examples of how Go code using it would look.

3
Go 1.22 inlining overhaul (docs.google.com)
submitted 1 year ago* (last edited 1 year ago) by sbinet@lemmy.ml to c/golang@lemmy.ml
 

The Go compiler’s inliner has never been particularly good. It wasn’t until Go 1.12, released in 2019, that the Go compiler supported inlining more than leaf functions, and we’ve slowly chipped away at more limitations of the inliner over the years (it started inlining functions with for loops in early 2021!). Go 1.20, released in February 2023, added support for basic profile-guided inlining, the most significant change to Go’s inlining policy since 1.12.

[...]

The rest of this document lays out a set of considerations for a redesign of Go’s inlining policy.

https://docs.google.com/document/d/1a6p7-nbk5PVyM1S2tmccFrrIuGzCyzclstBtaciHxVw/edit

[–] sbinet@lemmy.ml 3 points 1 year ago
  • star-tex: a TeX engine written in Go (automatically translated from Knuth's WEB description)
  • varda: a WIP photo/video album handler
  • odf: an OpenDocument format handler
 

Your weekly appointment with the latest news about accepted/declined proposals.

Noteworthy accepted proposal:

3
Coroutines for Go (research.swtch.com)
 

Why we need coroutines for Go, and what they might look like.

Another great post from Russ Cox, in his series on iterators and coroutines.

https://research.swtch.com/coro

2
Storing Data in Control Flow (research.swtch.com)
submitted 1 year ago* (last edited 1 year ago) by sbinet@lemmy.ml to c/golang@lemmy.ml
 

Write programs, not simulations of programs.

A great post from Russ Cox, setting the scene for his work on iterators and coroutines.

https://research.swtch.com/pcdata

 

tl;dr: Looking forward future Pinner.Pin performance improvements.

The upcoming Go version 1.21, scheduled for release next month, is currently available for download as Go 1.21rc2 in the "Unstable version" section here. Go 1.21 introduces a new runtime type, Pinner.

ccgo/v4, the next, also not yet released version of the C to Go transpiler, uses pinning to "freeze" addresses of local Go variables, addresses of which are passed around in the original C code. ccgo produces Go code where any C pointer points to memory not managed by the Go runtime. So ccgo simply puts such "escaping" variables in the memory not visible to the garbage collector, with stable, immovable addresses. Those are provided by the modernc.org/memory package. Otherwise a goroutine stack resizing can change the address of a local variable.

 

Your weekly appointment with the latest news about accepted/declined proposals.

 

A very simple-minded CommonMark to SPIP converter.

SPIP is a rather popular french CMS, with its own wiki-like syntax to author documents.

 

Your weekly appointment with the latest news about accepted/declined proposals.

view more: next ›