aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2024-02-06Tweak alignment-test.jlThomas White
2024-02-06Julia: UnitCell: Fix spurious precisionThomas White
2024-02-06Julia: Remove leftover crystal.in_imageThomas White
2024-02-06Julia: Crystal: Complain when requesting unrecognised fieldThomas White
2024-02-06Julia: Fix stack overflow with image.peaklistThomas White
2024-02-06Julia: add translategroup() (and use it)Thomas White
2024-02-06Ownership for Crystal.CellThomas White
2024-02-06Julia: MM semantics for Image.crystalsThomas White
2024-02-06Julia: Expose crystals and reflection lists from imageThomas White
The memory management isn't quite right here yet.
2024-02-06Update alignment-test.jlThomas White
2024-02-06Julia: Use jl_malloc etc for memory managementThomas White
2024-02-06Julia: Forbid non-deep copying of a PeakListThomas White
We cannot have two PeakList objects pointing at the same underlying ImageFeatureList.
2024-02-06Julia: 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-06Julia: Make a copy of the cell when creating a CrystalThomas White
We could do some more reference tracking stuff here, but it seems a little excessive.
2024-02-06Julia: fix Image/PeakList memory semanticsThomas 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-06Julia: Free old peak list on re-assignmentThomas White
2024-02-06Update docsThomas White
2024-02-06Update docsThomas White
2024-02-06Julia: set filename and event ID for imageThomas White
2024-02-06Update julia/partial_sim.jlThomas White
2024-02-06Julia: Write the DataTemplate to the streamThomas White
2024-02-06Julia: Add catch-all setproperty for imageThomas White
This allows e.g. image.serial to be set.
2024-02-06Julia: Implement setting of cr.reflectionsThomas White
2024-02-06Julia: Allow access to image.crystalsThomas White
image.crystals returns a vector of Crystal objects, while push!(image,crystal) can be used to add a new crystal.
2024-02-06FormattingThomas White
2024-02-06Julia: Add example (partial_sim in Julia)Thomas White
2024-02-06Julia: Add chunkwrite()Thomas White
2024-02-06Julia: Add some docstringsThomas White
2024-02-06Julia: Stream semanticsThomas White
2024-02-06Add missing millepede.jlThomas White
2024-02-06Add plot routine for alignment testThomas White
2024-02-06Reduce number of simulation runs and add some outputThomas White
2024-02-06Julia: Add Millepede outputThomas White
2024-02-06Julia: Add cell rotationThomas White
2024-02-06Julia: Stream openingThomas White
2024-02-06Detector alignment simulation (WIP)Thomas White
2024-02-06Prevent adding a PeakList to two different imagesThomas White
This is kind-of-OK in C, but will break Julia's memory management.
2024-02-06Stub documentation for Julia bindingsThomas White
2024-02-06Julia: CrystFEL.Indexing.Indexer: Fix tolerance parameterThomas White
2024-02-06Update alignment-test.jlThomas White
2024-02-06PeakList: Handle zero-length lists betterThomas White
2024-02-06Julia: Set profile radius and mosaicity for CrystalThomas White
2024-02-06Use wavelength and clen from DataTemplate if possibleThomas White
2024-02-06Julia: Run the indexer pipelineThomas White
2024-02-06Julia: Implement indexing flagsThomas White
2024-02-06Update alignment-test.jlThomas White
2024-02-06Julia: initial indexing frameworkThomas White
2024-02-06Show method for PeakListThomas White
2024-02-06Setters for image structThomas White
2024-02-06Julia: Avoid segfault if image doesn't have a peak listThomas White