-
Notifications
You must be signed in to change notification settings - Fork 5.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
LLL: support symbols in the LIT keyword #1188
Comments
Is it happening in every case or certain cases only? Do you need some help tracking it down? |
The error happens in all cases where I'm not yet familiar enough with the Thanks, @axic! |
I would normally look through the assembly code produced by the compiler to see what |
A quick update: I just tested the other two types of input to |
Actually, I'd like to try to figure this out myself for a bit longer. There's no huge hurry and it would be good for me to get more familiar with the code anyway. I appreciate the offer of help and I'll probably take you up on it in the near future. Thanks again, @axic! |
It's not looking good for being able to fix this bug. @axic and I have looked in-depth at the That makes sense. Sadly, it introduces a situation where a legitimate LLL keyword can't be used in a macro because in that context it gets a symbol as input, which would require a compile-time evaluation. |
There's something I don't understand yet: when running `pytest`, Populus can't decode the return value. It seems that the HeadTail decoder (from `eth_abi`) gets a bogus stream, where `seek` is a huge (32 bytes?) number that looks like a hash. Perhaps this is related to ethereum/solidity#1188 or perhaps, when storing/retrieving a string, some particular encoding scheme has to be used. I've tried many approaches (none of them are recorded in git history), but none worked. Therefore, resorting to using a simpler contract.
There's something I don't understand yet: when running `pytest`, Populus can't decode the return value. It seems that the HeadTail decoder (from `eth_abi`) gets a bogus stream, where `seek` is a huge (32 bytes?) number that looks like a hash. Perhaps this is related to ethereum/solidity#1188 or perhaps, when storing/retrieving a string, some particular encoding scheme has to be used. I've tried many approaches (none of them are recorded in git history), but none worked. Therefore, resorting to using a simpler contract. SQUASHED: Greeter.lll: remove NIHLIB populus-end marker. Literals are hard. For now, won't support them. Depending on where in code they appear (deployment or runtime code), and whether the `lit` keyword is used to define a macro, it's difficult to determine if they have to be stripped. Greeter.lll: minor, remove warning comment: now tested.
There's something I don't understand yet: when running `pytest`, Populus can't decode the return value. It seems that the HeadTail decoder (from `eth_abi`) gets a bogus stream, where `seek` is a huge (32 bytes?) number that looks like a hash. Perhaps this is related to ethereum/solidity#1188 or perhaps, when storing/retrieving a string, some particular encoding scheme has to be used. I've tried many approaches (none of them are recorded in git history), but none worked. Therefore, resorting to using a simpler contract.
The
lit
keyword works as expected when used inline:As with any LLL keyword,
lit
should be usable in a macro:However, when the
keccak
macro is subsequently invoked:the compiler produces this error:
The text was updated successfully, but these errors were encountered: