Open dmitrys99 opened 8 months ago
@dmitrys99, thank you for your interest and terribly sorry for a long delay with reply. I have not noticed your issue/question, and also many things happened this year, I was completely distracted from Ficus. Currently my main activities are around OpenCV, as we are going (finally) to release OpenCV 5.0 this year or early next year, and also, first of all, around my new job. I will try to slowly get back to Ficus in my spare time probably closer to the end of this year to early next year after OpenCV 5.
Yes, the main things, are listed in #5 and #16. There are several big roadblocks that need to be passed to make the language more usable for serious things:
tensor
(in addition to array 't []
). Having such type would help with many things, including neural engine inside Ficus (ficus/lib/NN), OpenCV bindings etc. One of the main goals for Ficus was to provide a nice GPU support (by generating Vulkan/OpenCL/CUDA code). tensor is assumed to be a 'black box' kind of array, which can be located anywhere, CPU or GPU or NPU memory. In OpenCV I'm now designing the very same thing around UMat.@ccode
. Probably, first of all there should be some partial replacement for C, may be an unsafe subset of Ficus (?), to rewrite some of the current low-level code directly in Ficus. Maybe borrow some ideas from Rust? Another approach that can be used together with 'unsafe Ficus' or replace it would be to extract @ccode
chunks into separate files and compile them separately using C compiler.There are other things, like decent package manager, profiler, feature-rich stdlib (#5), but in general, I would say, Debugger + LSP [+may be REPL] [+maybe Tensor] would be the ideal combination of new features to call the result Ficus 1.0. How much time it will take — difficult to say.
What is the project status?
Do you want contributions? What kind of contributions do you accept? Should one file issues for the project?
Should #5 and #16 be treated as roadmaps?
Thanks!