Galène videoconferencing server discussion list archives
 help / color / mirror / Atom feed
* [Galene] Heads up: Galene now requires Go 1.16
@ 2022-07-12 15:48 Juliusz Chroboczek
  2022-07-12 15:52 ` [Galene] " Dave Taht
  0 siblings, 1 reply; 6+ messages in thread
From: Juliusz Chroboczek @ 2022-07-12 15:48 UTC (permalink / raw)
  To: galene

I've mistakenly broken compilation of Galene with Go 1.15 back in April,
and nobody seems to have noticed, it looks like everybody has upgraded to
Go 1.16 or later.  (Go 1.16 was released in February 2021, the current
version is 1.18, and 1.19 should be released by the end of the month.)

I've just pushed a commit that makes the dependency on Go 1.16 or later
explicit.  If you're still using Go 1.15, please consider upgrading to
1.18 or 1.19.

-- Juliusz

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Galene] Re: Heads up: Galene now requires Go 1.16
  2022-07-12 15:48 [Galene] Heads up: Galene now requires Go 1.16 Juliusz Chroboczek
@ 2022-07-12 15:52 ` Dave Taht
  2022-07-12 16:18   ` [Galene] OT: generics [was: Heads up: Galene now requires Go 1.16] Juliusz Chroboczek
  0 siblings, 1 reply; 6+ messages in thread
From: Dave Taht @ 2022-07-12 15:52 UTC (permalink / raw)
  To: Juliusz Chroboczek; +Cc: galene

I noticed but upgraded.

btw, what are your feelings about go generics?

On Tue, Jul 12, 2022 at 8:48 AM Juliusz Chroboczek <jch@irif.fr> wrote:
>
> I've mistakenly broken compilation of Galene with Go 1.15 back in April,
> and nobody seems to have noticed, it looks like everybody has upgraded to
> Go 1.16 or later.  (Go 1.16 was released in February 2021, the current
> version is 1.18, and 1.19 should be released by the end of the month.)
>
> I've just pushed a commit that makes the dependency on Go 1.16 or later
> explicit.  If you're still using Go 1.15, please consider upgrading to
> 1.18 or 1.19.
>
> -- Juliusz
> _______________________________________________
> Galene mailing list -- galene@lists.galene.org
> To unsubscribe send an email to galene-leave@lists.galene.org



-- 
FQ World Domination pending: https://blog.cerowrt.org/post/state_of_fq_codel/
Dave Täht CEO, TekLibre, LLC

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Galene] OT: generics [was: Heads up: Galene now requires Go 1.16]
  2022-07-12 15:52 ` [Galene] " Dave Taht
@ 2022-07-12 16:18   ` Juliusz Chroboczek
  2022-07-12 16:45     ` [Galene] " Dave Taht
  0 siblings, 1 reply; 6+ messages in thread
From: Juliusz Chroboczek @ 2022-07-12 16:18 UTC (permalink / raw)
  To: Dave Taht; +Cc: galene

> btw, what are your feelings about go generics?

They are smartly done, unlike C++ generics they don't impose a single
implementation strategy.  They're done in Church style (where
instantiation consists in passing a type parameter), while I tend to
prefer Curry style (where instantiation is modelled as a case of
subtyping).  They don't support specialisation (where the user writes
a specially optimised implementation for the types they really care
about), which might or might not be a limitation.

We'll see if we get any nice libraries.  I'd love to see an implementation
of B-trees with good cache locality that is type-safe and efficient at all
types.

-- Juliusz

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Galene] Re: OT: generics [was: Heads up: Galene now requires Go 1.16]
  2022-07-12 16:18   ` [Galene] OT: generics [was: Heads up: Galene now requires Go 1.16] Juliusz Chroboczek
@ 2022-07-12 16:45     ` Dave Taht
  2022-07-13  1:00       ` Dave Taht
  2022-07-13  9:40       ` Juliusz Chroboczek
  0 siblings, 2 replies; 6+ messages in thread
From: Dave Taht @ 2022-07-12 16:45 UTC (permalink / raw)
  To: Juliusz Chroboczek; +Cc: galene

On Tue, Jul 12, 2022 at 9:18 AM Juliusz Chroboczek <jch@irif.fr> wrote:
>
> > btw, what are your feelings about go generics?
>
> They are smartly done, unlike C++ generics they don't impose a single
> implementation strategy.  They're done in Church style (where
> instantiation consists in passing a type parameter), while I tend to
> prefer Curry style (where instantiation is modelled as a case of
> subtyping).  They don't support specialisation (where the user writes
> a specially optimised implementation for the types they really care
> about), which might or might not be a limitation.

I hope they evolve. This was a very disappointing analysis of go generics:

https://planetscale.com/blog/generics-can-make-your-go-code-slower

However, the rust version of generics is essentially programming the
AST directly and if I really wanted a lisp, I'd have stuck with lisp.
I didn't care for C++ much, but BOOST was a bright light in it.

>
> We'll see if we get any nice libraries.  I'd love to see an implementation
> of B-trees with good cache locality that is type-safe and efficient at all
> types.
>
> -- Juliusz



-- 
FQ World Domination pending: https://blog.cerowrt.org/post/state_of_fq_codel/
Dave Täht CEO, TekLibre, LLC

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Galene] Re: OT: generics [was: Heads up: Galene now requires Go 1.16]
  2022-07-12 16:45     ` [Galene] " Dave Taht
@ 2022-07-13  1:00       ` Dave Taht
  2022-07-13  9:40       ` Juliusz Chroboczek
  1 sibling, 0 replies; 6+ messages in thread
From: Dave Taht @ 2022-07-13  1:00 UTC (permalink / raw)
  To: Juliusz Chroboczek; +Cc: galene

https://thenewstack.io/shaving-40-off-googles-b-tree-implementation-with-go-generics/
looked pretty exciting.

On Tue, Jul 12, 2022 at 9:45 AM Dave Taht <dave.taht@gmail.com> wrote:
>
> On Tue, Jul 12, 2022 at 9:18 AM Juliusz Chroboczek <jch@irif.fr> wrote:
> >
> > > btw, what are your feelings about go generics?
> >
> > They are smartly done, unlike C++ generics they don't impose a single
> > implementation strategy.  They're done in Church style (where
> > instantiation consists in passing a type parameter), while I tend to
> > prefer Curry style (where instantiation is modelled as a case of
> > subtyping).  They don't support specialisation (where the user writes
> > a specially optimised implementation for the types they really care
> > about), which might or might not be a limitation.
>
> I hope they evolve. This was a very disappointing analysis of go generics:
>
> https://planetscale.com/blog/generics-can-make-your-go-code-slower
>
> However, the rust version of generics is essentially programming the
> AST directly and if I really wanted a lisp, I'd have stuck with lisp.
> I didn't care for C++ much, but BOOST was a bright light in it.
>
> >
> > We'll see if we get any nice libraries.  I'd love to see an implementation
> > of B-trees with good cache locality that is type-safe and efficient at all
> > types.
> >
> > -- Juliusz
>
>
>
> --
> FQ World Domination pending: https://blog.cerowrt.org/post/state_of_fq_codel/
> Dave Täht CEO, TekLibre, LLC



-- 
FQ World Domination pending: https://blog.cerowrt.org/post/state_of_fq_codel/
Dave Täht CEO, TekLibre, LLC

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Galene] Re: OT: generics [was: Heads up: Galene now requires Go 1.16]
  2022-07-12 16:45     ` [Galene] " Dave Taht
  2022-07-13  1:00       ` Dave Taht
@ 2022-07-13  9:40       ` Juliusz Chroboczek
  1 sibling, 0 replies; 6+ messages in thread
From: Juliusz Chroboczek @ 2022-07-13  9:40 UTC (permalink / raw)
  To: Dave Taht; +Cc: galene

> I hope they evolve. This was a very disappointing analysis of go generics:

No big surprise here.  He's saying that Go generics are fast for simple
types (where they are essentially implemented as macros) but not
necessarily faster than interfaces when used with interfaces.  The
alternative would be to have the compiler duplicate generic functions at
all types, as in C++, which has its own issues.

That's exactly as it was in Common Lisp: you'd write generic code as the
initial implementation, then do some profiling and manually specialise
your inner loops.  That's something I can live with.

-- Juliusz


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2022-07-13  9:40 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-07-12 15:48 [Galene] Heads up: Galene now requires Go 1.16 Juliusz Chroboczek
2022-07-12 15:52 ` [Galene] " Dave Taht
2022-07-12 16:18   ` [Galene] OT: generics [was: Heads up: Galene now requires Go 1.16] Juliusz Chroboczek
2022-07-12 16:45     ` [Galene] " Dave Taht
2022-07-13  1:00       ` Dave Taht
2022-07-13  9:40       ` Juliusz Chroboczek

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox