Search
23:21:54
balrog
drmeister: hrm, I thought I messed with createTargetMachine
2:30:33
drmeister
I hit a problem with from_object translators for std::optional<Foo>
2:31:11
drmeister
Bleh - it's not even that.
2:31:19
drmeister
llvm::Optional<Foo>
2:32:31
drmeister
I implemented this translator.
2:32:33
drmeister
https://www.irccloud.com/pastebin/AqYSq4Xy/
2:34:22
drmeister
What value do I use on line 6 to indicate that nothing is being passed via an llvm::Optional type?
2:36:58
drmeister
NIL could be a value
2:37:16
drmeister
I could define :none or :optional-none
2:38:12
drmeister
balrog: I had to add an extra argument and then I ran into a nasty issue with passing llvm::Optional<T> objects as arguments.
2:38:46
balrog
drmeister: taking a look...
2:39:06
drmeister
That requires additional translation machinery that I haven't had occasion to explain to you.
2:39:10
balrog
which function is this for?
2:39:27
balrog
does this involve from_object?
2:39:29
drmeister
We have template functions that translate Common Lisp types to C++ and back again
2:39:48
balrog
yeah, that's a bit obvious to me
2:39:48
drmeister
translate::from_object and translate::to_object are the object translators.
2:40:13
balrog
whicn llvm method is having issues with this one?
2:40:25
balrog
like, what needs llvm:Optional?
2:41:01
drmeister
Here is a case where a function takes an Optional< CodeModel::Model > CM = None argument.
2:41:31
balrog
the TargetMachine constructor?
2:41:31
drmeister
So I need to write a template <typename T> from_object<llvm::Optional<T>> ... translator
2:41:55
drmeister
http://llvm.org/doxygen/classllvm_1_1Target.html#a3a99d5ba8f023d04d34f652af7494b35
2:46:09
balrog
they're using it to strongly type an optional argument apparently, modeled after ocaml 'opt'?
2:46:18
balrog
(http://ocaml-lib.sourceforge.net/doc/Option.html I *think*)
2:46:53
drmeister
Progress! It's compiling [5 of 55] in aclasp
2:47:13
balrog
I'm just thinking to myself whether that's something that's a Common Lisp language feature... I wouldn't know :/
2:47:18
drmeister
I have to run out and pick up my wife and daughter - back in about 0 min.
2:51:19
Bike
lisp doesn't have an easy option type. usually 'nil' is used as None, or if that's ambiguous a second value can indicate noneness.
2:53:14
balrog
yeah, a cursory search didn't indicate one.
3:15:58
balrog
drmeister: I don't think I answered your question.
3:16:14
balrog
is there any reason that it would not be acceptable to pass (CL) nil
3:18:14
drmeister
nil may mean something other than the noneness
3:18:41
drmeister
It looks like we are llvm6 compliant
4:28:36
beach
Good morning everyone!