yas icon indicating copy to clipboard operation
yas copied to clipboard

base64.hpp compile error on big endian (powerpc)

Open wrightleft opened this issue 6 years ago • 5 comments

I get this error when compiling on powerpc:

/usr/include/yas/detail/tools/base64.hpp:578:29: error: 'src' was not declared in this scope

And then dozens of similar errors:

/usr/include/yas/detail/tools/base64.hpp:580:10: error: 'i' was not declared in this scope
/usr/include/yas/detail/tools/base64.hpp:584:52: error: there are no arguments to 'YAS_THROW_BASE64_ERROR' that depend on a template parameter, so a declaration of 'YAS_THROW_BASE64_ERROR' must be available

(And so on.)

Seems like big endian hasn't compiled in a while (ever?).

wrightleft avatar Jan 21 '19 21:01 wrightleft

I also noticed that json support isn't completely implemented (missing blocks of code where the base64 decode function should be used), and will silently fail. Why not move json support to a branch until it is ready for use?

wrightleft avatar Jan 21 '19 21:01 wrightleft

/usr/include/yas/detail/tools/base64.hpp:578:29: error: 'src' was not declared in this scope

Since as JSON support has been implemented for YAS, indeed, YAS has not been tested on the BE machine...

(missing blocks of code where the base64 decode function should be used)

Can you explain please?

niXman avatar Jan 21 '19 22:01 niXman

(missing blocks of code where the base64 decode function should be used)

Can you explain please?

See this block of code: https://github.com/niXman/yas/blob/ce73bbb328969e1dbd946dd060d0a6299e661fbd/include/yas/types/utility/buffer.hpp#L123

I would assume that block is where modp_b64_decode would be called. As it stands, modp_b64_decode is never used in the code. And that block of code is essentially empty.

wrightleft avatar Jan 22 '19 03:01 wrightleft

Because I'm still not sure whether support for serializing shared_buffer in the context of JSON is the right idea... But you are right, I must somehow flesh it out... Ok, I'll think about this.

If you have the opportunity to fix base64.hpp file for BE machine - I will be grateful!

niXman avatar Jan 22 '19 04:01 niXman

I'm more focused on binary serialization, so I just removed the base64.h file and everything that references it. I looked at the code for a bit, but it wasn't a trivial fix. Sorry. It's hard to get time to fix something, I'm not going to use. :)

I was actually thinking of just ripping out the json flag and everything that referred it, but that was a bit too ambitious.

wrightleft avatar Jan 23 '19 03:01 wrightleft