All, These questions have come up while I've been working on the callables for Calc, and I was wondering if anyone could weigh in:
1. Is it feasible to alter the way the compiler treats jump operators? I'd like to eliminate the requirement that there be at least one expression that is always fully evaluated. I know how I would handle that in the RPN, but I don't know what might break if I change things at that level. This requirement is preventing LAMBDA expressions without any parameters, and I don't see any reason it should be necessary. 2. How much effort would it be to add syntax highlighting to the formula editor(s)? I would be interested in arranging for local variables to be colored while editing a formula. 3. Is it worth the effort to be able to store a callable in a matrix? My thinking is that it would be, if only because, while most users would never try it, the one user that does and finds out that it is not possible would be very disappointed indeed. I'm also wondering about the extensibility of the type system in general, if matrices cannot accommodate more types. 4. I believe the type system could use an overhaul. I *think* I found all the places I had to account for callables, but I have no way to know for sure, because there are so many different ways that different data types move around the program. I feel that there is no need for each container class to have its own code to handle different types of data; that's a maintenance nightmare. Perhaps if they all used FormulaToken, which can already handle all the data types that are supported, it would be much easier to deal with. 5. Is there a unified way for an ScInterpreter to retrieve the contents of a reference, regardless of its type? If not, I think there should be. I wound up writing a function to deal with it, and it's still incomplete. I'm also not sure I've handled all the possibilities correctly. 6. I've noticed that there is no way for any information to be provided to the user about an error that comes up in a spreadsheet formula. All they see is the error code number, and the message assigned to that code. I would like to be able to incorporate an arbitrary message with the error object to pass along to the user. Of course, such a message would need to be translatable. I would be interested in taking on any/all of these tasks (over time), but I don't want to proceed without guidance from someone who knows the code better than I do. In particular, I wonder if any of these things that I see as unintended shortcomings are actually deliberate decisions, and, if so, I'd be interested in understanding the reasoning. Thank you, Ben
