WIP making ODEs work in Julia
Unfortunately we can't quite finish getting ODEs in Julia, but this should guide the way when we're ready.
The reason we can't finish is because the ODE library uses structs, and the Julia renderer doesn't support structs yet.
Other changes:
- I changed how Julia imports libraries, as that was previously incorrect. I will create a separate PR for this.
- I changed how Julia represents empty lists. Previously any empty list was simply
[]; now it isType[]- e.g. an empty list of doubles isFloat64[]. The reason for this is because Julia assigns[]the typeArray{Any}, which causes problems when you need it to be typeArray{Float}, for example. I will also create a separate PR for this. - I created the
populateSolList'function, which acts like thepopulateSolListbut without accessing a field. I think that once we have structs in Julia, we won't need this function. - I removed the
[]case fromapplyWithNamedArgs, as it was causing problems.
I commented most of the things that need to be changed once we have structs. You can also refer to my test case here to compare.
@JacquesCarette @smiths @balacij feel free to give any feedback or ask any questions you have.
Contributes to #3918
Why did you change Bundled to Unbundled in one example? Also, if you could rebase, so that it's easier to see what's new in just this PR?
I changed the example to Unbundled since Julia can't support Bundled until we add Structs. Basically I just needed a way to see/show what code it was outputting for one of the ODE examples. Since adding Structs to Julia should unblock both ODEs and Bundled, we can probably put it back to Bundled by the time this PR is finished.