Age | Commit message (Collapse) | Author | |
---|---|---|---|
2024-02-06 | Julia: Add Reflection setters | Thomas White | |
2024-02-06 | Julia: Expose partiality modelling | Thomas White | |
2024-02-06 | Julia: Add push!(image, crystal, reflections) | Thomas White | |
New method needed following "Crystals shouldn't own RefLists" patch series. | |||
2024-02-06 | Julia: push!(image, crystal): Mark crystal as not to be freed | Thomas White | |
The crystal must also be added to the image's list, so that it doesn't get GCed while the image is still around. | |||
2024-02-06 | Julia: Use cfstrdup (not strdup) | Thomas White | |
2024-02-06 | Julia: Get rid of crystal.reflections | Thomas White | |
2024-02-06 | Julia: Crystal: Improve show method, add accessors | Thomas White | |
I'm not sure about these field names, yet. | |||
2024-02-06 | Julia: Fix image.peaklist memory management | Thomas White | |
2024-02-06 | Julia: predictreflections: add types | Thomas White | |
This is to stop me from putting the image and crystal the wrong way round. | |||
2024-02-06 | Julia: Add show method for Image | Thomas White | |
2024-02-06 | Julia: translategroup: Add an exclamation point | Thomas White | |
2024-02-06 | Tweak alignment-test.jl | Thomas White | |
2024-02-06 | Julia: UnitCell: Fix spurious precision | Thomas White | |
2024-02-06 | Julia: Remove leftover crystal.in_image | Thomas White | |
2024-02-06 | Julia: Crystal: Complain when requesting unrecognised field | Thomas White | |
2024-02-06 | Julia: Fix stack overflow with image.peaklist | Thomas White | |
2024-02-06 | Julia: add translategroup() (and use it) | Thomas White | |
2024-02-06 | Ownership for Crystal.Cell | Thomas White | |
2024-02-06 | Julia: MM semantics for Image.crystals | Thomas White | |
2024-02-06 | Julia: Expose crystals and reflection lists from image | Thomas White | |
The memory management isn't quite right here yet. | |||
2024-02-06 | Update alignment-test.jl | Thomas White | |
2024-02-06 | Julia: Use jl_malloc etc for memory management | Thomas White | |
2024-02-06 | Julia: Forbid non-deep copying of a PeakList | Thomas White | |
We cannot have two PeakList objects pointing at the same underlying ImageFeatureList. | |||
2024-02-06 | Julia: Image/PeakList memory semantics (again) | Thomas White | |
Previous commit a6462e1f0 was still not right. If the image gets freed, the PeakList can be left with a dangling reference. If the peak list gets replaced at the C level (e.g. by running a new peak search), Julia will have no way of knowing about it. Instead of having the PeakList know if it's associated with an image, it's better to have the Image know (at the C level) if it's responsible for freeing the ImageFeatureList. As soon as the ImageFeatureList is exposed to the Julia GC via a PeakList object, it becomes Julia's responsibility to free it. The Julia Image structure contains a reference to the Julia PeakList, to prevent this from happening until either the image is freed or a new PeakList is substituted. The two references (Julia image.peaklist and C image->features) have to be kept in sync, and we check image->features every time the peaklist is requested. | |||
2024-02-06 | Julia: Make a copy of the cell when creating a Crystal | Thomas White | |
We could do some more reference tracking stuff here, but it seems a little excessive. | |||
2024-02-06 | Julia: fix Image/PeakList memory semantics | Thomas White | |
The previous commit 3bb46f49 was a mistake. We can't just free the old peak list, because there might still be a PeakList object around that refers to it. This new version keeps a record of the PeakList object itself, setting in_image=false if a new list is added, so that it can be freed by the GC. I made an attempt at making this thread-safe, but I think it's impossible to get it completely correct. One should simply avoid setting any Image fields in the same structure from different threads. | |||
2024-02-06 | Julia: Free old peak list on re-assignment | Thomas White | |
2024-02-06 | Update docs | Thomas White | |
2024-02-06 | Update docs | Thomas White | |
2024-02-06 | Julia: set filename and event ID for image | Thomas White | |
2024-02-06 | Update julia/partial_sim.jl | Thomas White | |
2024-02-06 | Julia: Write the DataTemplate to the stream | Thomas White | |
2024-02-06 | Julia: Add catch-all setproperty for image | Thomas White | |
This allows e.g. image.serial to be set. | |||
2024-02-06 | Julia: Implement setting of cr.reflections | Thomas White | |
2024-02-06 | Julia: Allow access to image.crystals | Thomas White | |
image.crystals returns a vector of Crystal objects, while push!(image,crystal) can be used to add a new crystal. | |||
2024-02-06 | Formatting | Thomas White | |
2024-02-06 | Julia: Add example (partial_sim in Julia) | Thomas White | |
2024-02-06 | Julia: Add chunkwrite() | Thomas White | |
2024-02-06 | Julia: Add some docstrings | Thomas White | |
2024-02-06 | Julia: Stream semantics | Thomas White | |
2024-02-06 | Add missing millepede.jl | Thomas White | |
2024-02-06 | Add plot routine for alignment test | Thomas White | |
2024-02-06 | Reduce number of simulation runs and add some output | Thomas White | |
2024-02-06 | Julia: Add Millepede output | Thomas White | |
2024-02-06 | Julia: Add cell rotation | Thomas White | |
2024-02-06 | Julia: Stream opening | Thomas White | |
2024-02-06 | Detector alignment simulation (WIP) | Thomas White | |
2024-02-06 | Prevent adding a PeakList to two different images | Thomas White | |
This is kind-of-OK in C, but will break Julia's memory management. | |||
2024-02-06 | Stub documentation for Julia bindings | Thomas White | |
2024-02-06 | Julia: CrystFEL.Indexing.Indexer: Fix tolerance parameter | Thomas White | |