Skip to content

History / Julia

Revisions

  • Spell operators and value types the way the engine registers them (#1161) The token table is case folded, so a page that writes UInt32, AsList or NrOfRows teaches a spelling that costs the reader a case mix-up warning on the first run. This rewrites those spellings across 142 pages to the names the engine actually registers, taken from the running engine rather than from memory: the 2342 operator group names that DocData()/OperatorGroups/name reports, plus the property names in TicPropDefConst.h. Four kinds of change, all case only: * value types in configuration examples -- String, Float64, SPoint, UInt32, Bool, Void and the *Seq variants -> lower case, which is what ValueWrap.cpp has registered (AsLowerCase of the C++ type name) since 20.9. * the boolean literals True/TRUE/False/FALSE in expressions and data lists. Property VALUES keep their spelling: StorageReadOnly = "False" is data. * operator names, in examples and in the syntax/definition lines of the operator pages: asList, asItemList, expand, currentDir, makeDir, get_x, get_y, pointrow, pointcol, id, range, subset, replace, quote, dquote, isNegative, isPositive, isZero, the *seq conversions -- and the other way for the ones the engine capitalises: BaseUnit, IsDefined, LowerBound, UpperBound, Round, RoundUp, RoundDown, RoundToZero, LowerCase, AsHex, SubItem, SubItem_PropValues, GeoDmsVersion, EXEC_EC. * nrofrows, both as the operator and as the unit property. Five examples named an item after the operator it called, which folds onto the operator's own token: MakeDir, GeoDMSVersion, Quote. Those items are renamed (newFolder, versionString, Quoted). DocData's sub-item is name, not Name. IntegrityCheck and expr property values are parsed as expressions, so the operator inside the string counts too. Value-type gains a "spelling" section and Naming-conventions a bullet saying that operator names must be written as registered -- most lower case, but not all -- both linking to the case mix-up section of Tree-item-name. NOT touched, and left as one decision rather than half-made here: the mixed-case PROPERTY names. The engine registers Label, Expr, Descr, Metric, Format, Source, Using, Projection, ValueType, IsHidden, and the pages (like nearly every real configuration) write label, expr, descr, source, using. Whether the wiki follows the engine or the engine follows the corpus is the same question #1161 deferred for the ~57 property names; it should be settled once, in one place. Also left: SQL keywords inside SqlString values, Python API names, and example item names that merely collide with an engine name (Name, District, Area, Union, Left). Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

    @MaartenHilferink MaartenHilferink committed Aug 28, 2026
  • #659: document the Julia relation, and Arrow as the second typed exchange format Julia.md (new) - Documents the NetworkModel_EU pipeline (branch ServiceAccess) as the reference implementation of the write -> solve -> read round trip: OD/client/facility tables exported to Arrow, solved by lp.jl / greedy.jl / lambda_sweep_simplex.jl, results read back for mapping. Neither Julia nor Arrow was mentioned anywhere on the wiki so far. - The three things in its batch file that are easy to get wrong and worth copying: each item path a separately quoted argument (semicolon-joining makes GeoDmsRun see one unresolvable path), the study area passed through %env:STUDY_AREA% instead of an edited config file, and /L<logfile> plus an errorlevel check after every call so that a later step cannot consume the output of a step that failed. - Records that the solver is deliberately NOT started with exec_ec: the batch owns the sequence, which is the only arrangement that orders a GeoDMS write correctly. It is therefore the production confirmation of the rule now stated on Exec_ec.md. - Reading results back via a Template parameterised over solver variant, and joining on the exported id with rjoin rather than trusting row order. Parquet.md - New Arrow section: same GDAL drivers, same typed columns, uncompressed and therefore faster for a file written and read again immediately; set GDAL_DRIVER = 'Arrow' explicitly on read. When to pick which. R.md - Arrow named as the equally good alternative (arrow::read_ipc_file), with the advice to export an id column and join on it rather than relying on row order. Exec_ec.md, Parquet.md, R.md all cross-link Julia.md.

    @MaartenHilferink MaartenHilferink committed Aug 19, 2026