These are chat archives for boostorg/hana

20th
Mar 2016
Louis Dionne
@ldionne
Mar 20 2016 14:45
@ricejasonf I apologize if I’m not being very responsive to your PR and issue, but I’m currently working hard on Metabench and my C++Now talks. Just know I haven’t forgotten you.
Jason Rice
@ricejasonf
Mar 20 2016 21:15
np.. They are kind of churning in my head anyways. Instead of partially applied Metafunctions, I'm trying out requiring a specialization of different make functions that have constraints on whatever they return.
On a completely unrelated note, I decided to organize my project the way Boost.Hana is with 'concepts' and all that. I even moved away from camel_case types and function names using clang::RecursiveASTVisitor. https://gist.github.com/ricejasonf/a62c22740888b3ee2eac
Jason Rice
@ricejasonf
Mar 20 2016 21:25
I was thinking about making a much easier interface to that by using a chain of overloaded functions that worked with my variant that matches using hana::overload_linearly. It could eliminate a lot of boiler plate code. (notice I have visitors using visitors)
Jason Rice
@ricejasonf
Mar 20 2016 21:31
One last unrelated thing. WIth that IntegralSequence thing, we could store both the index and the memory offset for each element of that heterogenous storage thing you were talking about. Then a whole series of operations could be done on that metadata and then finally applied to the source tuple to create the target where consecutive blocks would be moved in one operation automatically.
I mean store the index and memory offset in a single std::size_t.
@ldionne I'm just curious. What are your C++Now talks about?
Louis Dionne
@ldionne
Mar 20 2016 21:46

On a completely unrelated note, I decided to organize my project the way Boost.Hana is with 'concepts' and all that.

That's cool. But Hana's concept system was made with Hana in mind, not with arbitrary libraries. I mean it's not a full-fledged concept system. I'm glad if it can be useful to you, I'm just slightly worried that it might not behave as you would expect it to in some subtle cases.

I was thinking about making a much easier interface to that by using a chain of overloaded functions that worked with my variant that matches using hana::overload_linearly.

Do you mean in the Clang snippet you posted above, or in NBDL?

One last unrelated thing. WIth that IntegralSequence thing, we could store both the index and the memory offset for each element of that heterogenous storage thing you were talking about. Then a whole series of operations could be done on that metadata and then finally applied to the source tuple to create the target where consecutive blocks would be moved in one operation automatically.

I'm sorry, but I don't follow you. Can you provide a bit more background info please? (I've been very spread out on projects lately, so I have a hard time context switching back to Hana).

I'm just curious. What are your C++Now talks about?

Both are about metaprogramming. One is an attempt to teach metaprogramming to beginners from the ground up using Hana, and the other one is just a collection of metaprogramming techniques, benchmarks and sharing my experience on Hana. I'll talk about stuff like how to implement heterogeneous algorithms, and possible future directions for implementing tuple, etc..

Jason Rice
@ricejasonf
Mar 20 2016 22:03
The hana::overload_linearly thing would be used to create a facade for clang's recursive ast visitor.
Jason Rice
@ricejasonf
Mar 20 2016 22:16

Can you provide a bit more background info please?

A while back you got me started on the idea of implementing a tuple using aligned storage. I might take another stab at it if that is okay.