Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
186 commits
Select commit Hold shift + click to select a range
2f00233
chore: add EUPL-1.2 LICENCE file (UK English canonical)
Snider May 1, 2026
963725c
audit: harden + extend v0.9.0 audit script
Snider May 1, 2026
b48b896
audit: add replace-directives dimension
Snider May 1, 2026
e13d7d1
audit: align python helpers with audit.sh external/ exclusion
Snider May 1, 2026
b418522
core: wrapper expansion — RawMessage, Buffer, Builder + 5 string wrap…
Snider May 1, 2026
62aac07
audit: add tracked-artifacts dimension
Snider May 1, 2026
cfe2000
audit: add 3 dims extracted from core/go/docs (Mantis #1337 Phase 2)
Snider May 1, 2026
eb6afa1
audit: example-gaps METHOD regex requires uppercase receiver type
Snider May 1, 2026
83ad20d
audit: ax7-gaps METHOD regex same fix as example-gaps (eb6afa1)
Snider May 1, 2026
a00b71a
audit: exclude .lintdeps/ from scans (Mantis #1336)
Snider May 1, 2026
7d10b44
audit(file-presence): fix METHOD regex false-positive on lowercase re…
Snider May 1, 2026
d237034
feat(audit): add tuple-result-shape check to v090 audit
Snider May 11, 2026
3ecf794
fix(audit): broaden tuple-result-shape regex to catch slice/map first…
Snider May 11, 2026
18b86f3
audit: add 4 new dimensions covering 2026-05 canon
Snider May 11, 2026
5fab841
feat(api): export HTTP method/status constants + Flusher/DefaultClien…
Snider May 15, 2026
581cfe5
feat(time): export After / NewTicker / Unix(s,ns) / UnixMilli
Snider May 15, 2026
bf32bfd
feat(core): add LastIndex / SliceSortFunc / LimitReader / RandRead
Snider May 15, 2026
1a0e3b3
feat(core): export Go(fn) + IsShutdown() — tracked goroutines + coope…
Snider May 15, 2026
e0951cd
test(string): add AX-11 bench harness for hot string primitives
Snider May 21, 2026
1c18c2f
perf(string): replace O(N²) Concat-cascade in Join with single pre-si…
Snider May 21, 2026
ccbdb4f
test(slice): add AX-11 bench harness for slice primitives
Snider May 21, 2026
6d2b96d
perf(slice): replace sort.Slice with generic slices.Sort/SortFunc
Snider May 21, 2026
7c76f28
test(json): add AX-11 bench harness for json primitives
Snider May 21, 2026
b4e6af4
test(io): add AX-11 bench harness for io primitives
Snider May 21, 2026
7c1270a
perf(io): fast path for ReadAll when reader exposes Len()
Snider May 21, 2026
ac337a8
test(api): add AX-11 bench harness for HTTP + API primitives
Snider May 21, 2026
fcef973
perf(string): ASCII no-op fast path for Lower and Upper
Snider May 21, 2026
2598335
test(slice): measure full sort benchmark operation
Snider May 21, 2026
ca96526
perf(io): unsafe.String + LimitedReader fast path for ReadAll
Snider May 21, 2026
729b23b
perf(slice): small-N linear path for SliceUniq
Snider May 21, 2026
6cd30f2
test(array): add AX-11 bench harness for Array[T] primitive
Snider May 21, 2026
d12d466
perf(array): pre-size Filter + small-N linear path for Deduplicate
Snider May 21, 2026
2a921a3
perf(random): uint64 rejection for RandomInt + inline RandomString
Snider May 21, 2026
23c0576
perf(math): use builtin min/max instead of cmp.Compare three-way path
Snider May 21, 2026
691ef3e
test(atomic): add AX-11 bench harness for the typed atomic wrappers
Snider May 21, 2026
ace2c41
perf(runtime): drop empty-map literal in NewRuntime + add AX-11 bench…
Snider May 21, 2026
8b43d04
test(time): add AX-11 bench harness for time.go primitives
Snider May 21, 2026
70ad640
perf(fs): cache resolved root + unsafe.String in Read
Snider May 21, 2026
49a7e29
test(sync): add AX-11 bench harness for sync.go primitives
Snider May 21, 2026
5e90c53
perf(map): index-assign in MapKeys/MapValues instead of append
Snider May 21, 2026
451b3aa
perf(hash): unsafe.Slice aliasing for SHA256{,Hex}String
Snider May 21, 2026
8316208
test(regexp): add AX-11 bench harness for regex primitives
Snider May 21, 2026
492bfe7
perf(error): direct *Err type assertion fast path
Snider May 21, 2026
904c675
test(iter): add AX-11 bench harness for iter primitives
Snider May 21, 2026
fe7eb81
test(net): add AX-11 bench harness for net primitives
Snider May 21, 2026
930f0ac
test(url): add AX-11 bench harness for URL primitives
Snider May 21, 2026
c325961
perf(path): absolute-first-segment fast path for Path()
Snider May 21, 2026
bd43e1f
perf(log): rewrite formatter — single Buffer, no defensive copy, key …
Snider May 21, 2026
2547f66
test(bench): close export-coverage gaps across nine bench harnesses
Snider May 21, 2026
7335eba
test(bench): AX-11 harnesses for int/encode/format/unicode/result/con…
Snider May 21, 2026
e832c70
test(bench): AX-11 harnesses for core/action/registry/service/app pri…
Snider May 21, 2026
6b76ddb
test(bench): AX-11 harnesses for sha3/table/drive/scanner/user/templa…
Snider May 21, 2026
a8c4d7e
test(bench): AX-11 harnesses for data/options/contract/embed/entitlem…
Snider May 21, 2026
7b549ab
perf(core): lift zero-copy view primitives + propagate to internal wr…
Snider May 21, 2026
7d1874e
perf(core): cache Fs.validatePath, lock-free IPC dispatch, cached Loc…
Snider May 21, 2026
90b66c3
perf(utils): single-buffer ID() + shortRand — 5 allocs → 1
Snider May 21, 2026
ffb1abb
perf(json): JSONMarshalString uses AsString — skip return-side copy
Snider May 21, 2026
0a8b115
perf(path,io): CleanPath OS-native fast path + WriteString zero-copy …
Snider May 21, 2026
d9522dc
perf(data,embed,log): drop allocs across read paths + log formatter
Snider May 21, 2026
169c79a
perf(path): PathBase + PathExt zero-alloc via lastIndex
Snider May 21, 2026
ad23494
perf(json,encode): zero-copy returns — AsBytes input + AsString output
Snider May 21, 2026
c59e0f6
feat(string): add Clone — detach string from backing memory
Snider May 21, 2026
f7a84db
feat(unsafe): add PinnedView for zero-copy Go→C tensor handoff
Snider May 21, 2026
a777ca3
fix(i18n): SetLanguage returns Result, aligning Translator to go-i18n
Snider Jun 4, 2026
c4419b0
feat(os): export core.O_NOFOLLOW (#1681)
Snider Jun 4, 2026
fe2f5d9
feat(core): export Core.WithContext for request-scoped derivation (#1…
Snider Jun 4, 2026
b57fdf1
feat(time): complete time wrapper — Date/Month/Weekday/Location/Timer…
Snider Jun 4, 2026
d4e2855
feat(os): wrap Chmod/Symlink/Readlink/CreateTemp/Executable + Err* se…
Snider Jun 4, 2026
9a8d3c0
feat(string): wrap Repeat/Fields/Count/EqualFold/Cut family + IndexAn…
Snider Jun 4, 2026
d101d03
feat(json): wrap streaming Encoder/Decoder + Number/Delim/Valid + ifa…
Snider Jun 4, 2026
29800b7
feat(reflect): add KindUintptr + TypeFor/NewValue/MakeSlice/MakeMap/C…
Snider Jun 4, 2026
43738c6
test(string): bench scan/cut family — IndexAny/ContainsAny/ContainsRu…
Snider Jun 4, 2026
7c95f96
test(os): rename TestOs_* -> TestOS_* — uppercase acronym (AX-1)
Snider Jun 4, 2026
4b0072a
feat(core): make CLI registration opt-in via WithCli()
Snider Jun 27, 2026
418146e
test(sha3): deepen SHA3_256/SHA3_256Hex triplets to pin the full cont…
Snider Jun 28, 2026
5f2a938
test(atomic): rename type-level triplets to the real symbol (AtomicBo…
Snider Jun 28, 2026
f47c765
test(log): consolidate legacy block to one test per symbol
Snider Jun 28, 2026
4813ed8
test(assert): combine 4 extra-case dups into helper triplets; rename …
Snider Jun 28, 2026
1b56ec5
test(exit): consolidate to one test per symbol
Snider Jun 28, 2026
9e6865d
test(ipc): consolidate shorthand into the canonical Core_* set
Snider Jun 28, 2026
3fea728
test(app): drop shorthand dups, name the c.App() accessor tests
Snider Jun 28, 2026
ed717b6
test(array): drop New dup, name the empty-construction edge
Snider Jun 28, 2026
7bc64eb
test(user): make UserCurrent_Ugly actually test UserCurrent
Snider Jun 28, 2026
b32d6b0
test(runtime): remove shorthand umbrella dups of the canonical triplets
Snider Jun 28, 2026
6e87209
test(scanner/drive/i18n/lsp): clear K3 singles
Snider Jun 28, 2026
5103935
test(time/reflect/fs/core): clear K3 — reference the real symbol; dro…
Snider Jun 28, 2026
29bee85
test(error): reference the real symbol for the flagged ErrorLog tests
Snider Jun 28, 2026
0405370
test(lock): drop umbrella dups, name the unique edges
Snider Jun 28, 2026
8fbdec5
test(config): drop umbrella dups, reference the real symbol
Snider Jun 28, 2026
26b2e00
test(command): fold scenario edges into canonical, drop dups
Snider Jun 28, 2026
32bec23
test(service): fold scenario edges into canonical, drop dups
Snider Jun 28, 2026
5a997b0
test(embed): rename misparsed descriptors, drop umbrella/dup tests
Snider Jun 28, 2026
b09b630
test(log): merge log_internal_test.go into log_test.go (package core)
Snider Jun 28, 2026
d8d0a88
test(info): merge info_internal_test.go away (init tests were Env dups)
Snider Jun 28, 2026
1825ff3
test(os/options/cli): clear K3 singles
Snider Jun 28, 2026
d430482
test(lsp): merge lsp_internal_test.go into lsp_test.go (package core)
Snider Jun 28, 2026
951cd6e
test(log): replace PackageLevelFunctions smoke with the missing Warn_…
Snider Jun 28, 2026
681f3b0
test(assert): split grouped failure-suite into per-symbol failure tests
Snider Jun 28, 2026
62ae7d8
test(os): conform TestOS_ -> TestOs_ to the file-prefix grammar
Snider Jun 28, 2026
20c563a
test(unsafe): conform to FilePrefix_Symbol grammar + complete triplets
Snider Jun 28, 2026
c833ea9
test(math,string): fill Clamp/Sign + Clone/LastIndex triplets
Snider Jun 28, 2026
b88d8ab
test(slice,array,io,random): fill pure-function triplets
Snider Jun 28, 2026
b11f5f9
test(config,core): split Feature umbrella into per-method triplets + …
Snider Jun 28, 2026
34b09b2
test(contract): fill CoreOption builder triplets
Snider Jun 28, 2026
170a339
test(runtime,registry): Core.Go/IsShutdown triplets + canonical GetOr…
Snider Jun 28, 2026
286e6a9
test(fs,info): fill ReadDir/Sub + OS/Env triplet gaps
Snider Jun 28, 2026
4e80e62
test(os): fill file-op + Setenv + Exit triplet gaps
Snider Jun 28, 2026
dfdabd3
test(cli_assert): AssertCLI + AssertCLIs triplets via a stub process.…
Snider Jun 28, 2026
7966f80
test(cli,time): CliRegister_Good + Unix/UnixMilli/After/NewTicker tri…
Snider Jun 28, 2026
ddc9f32
test(api): HTTP wrapper triplets (mux/strip/error/fs/fileserver/listen)
Snider Jun 28, 2026
9ca1ef6
test(lsp): LSPServe_Ugly — deadline-exceeded context returns immediately
Snider Jun 28, 2026
44aa0c1
test(assert): complete the per-symbol triplets — pass-path Good/Ugly
Snider Jun 28, 2026
9ee90dd
test: replace gamed AssertTrue(t,true) stubs with real outcome assert…
Snider Jun 28, 2026
16d71c5
test: differentiate identical Good/Bad/Ugly triplet bodies
Snider Jun 28, 2026
28d671b
docs(core/go): add architecture.md + development.md (close docs-gaps)
Snider Jun 28, 2026
bd080de
refactor(io): readAllSized returns Result, not (\[\]byte, error)
Snider Jun 28, 2026
b5a38ff
refactor(embed): internal helpers return Result, not (T, error)
Snider Jun 28, 2026
c3faa43
refactor(lsp): lspServer.writeMessage returns Result, not error
Snider Jun 28, 2026
488f9e1
refactor: wrap raw errors with WrapCode in the converted Result returns
Snider Jun 28, 2026
2d717db
refactor(path): PathWalk/PathWalkDir return Result, not error
Snider Jun 28, 2026
c319d88
refactor(lsp): readMessage returns Result, not (\[\]byte, error)
Snider Jun 28, 2026
f42549a
docs(math): Example Clamp/Sign/NaN/IsNaN
Snider Jun 28, 2026
44c8201
docs(result): Example Ok/Fail/ResultOf/MustCast
Snider Jun 28, 2026
de413fc
docs(string): Example Clone/IndexAny/ContainsAny/ContainsRune/Count/C…
Snider Jun 28, 2026
ee8fb94
docs(path): Example PathJoin/PathMatch/PathToSlash/PathEvalSymlinks/P…
Snider Jun 28, 2026
8822bd1
docs(config): Example ConfigVar.Get/IsSet + Feature.Name/Enable/Disab…
Snider Jun 28, 2026
1305788
docs(time): Example Date/Tick/NewTimer/AfterFunc
Snider Jun 28, 2026
37b488e
docs(info): Example OS/Arch/GoVersion/NumCPU/StackBuf
Snider Jun 28, 2026
b337393
docs(unsafe): Example PinSlice + PinnedView Ptr/Len/Bytes/Active/Release
Snider Jun 28, 2026
7829525
docs(slice): Example SliceClone/SliceSorted
Snider Jun 28, 2026
67f4b9f
docs(reflect): Example Zero/MakeSlice/MakeMap/MakeMapWithSize/CopyVal…
Snider Jun 28, 2026
03a00fc
docs(int,array): Example FormatUint, Array.IndexOf
Snider Jun 28, 2026
403f3fb
docs(options): Example Options.Float64/Duration
Snider Jun 28, 2026
cc5ee37
docs(io): move ExampleReadAll to io_example_test.go (matches ReadAll'…
Snider Jun 28, 2026
2933177
docs(json): Example JSONMarshalIndent
Snider Jun 28, 2026
a1875c1
docs(scanner): Example NewBufReader
Snider Jun 28, 2026
a8f8782
docs(context): Example TODO/WithValue/WithDeadline
Snider Jun 28, 2026
2ba4417
docs(registry,regexp): Example GetOrSet/GetIncludingDisabled + MatchS…
Snider Jun 28, 2026
3e0c5ba
docs(fs): Example ReadDir/ReadFSFile/Sub/WalkDir
Snider Jun 28, 2026
fe1706c
docs(format): move Sprint/Sprintf/Println/Print examples to format_ex…
Snider Jun 28, 2026
244ecfc
docs(atomic): Example Load/Store/Add/Swap for Bool/Int32/Int64/Uint32…
Snider Jun 28, 2026
9d2116d
docs(sync): Example Mutex/RWMutex/Once/WaitGroup/SyncMap methods
Snider Jun 28, 2026
d9f1cfa
docs(core): Example for Core accessors + move Core_Feature from confi…
Snider Jun 28, 2026
78e11f1
docs(os): Example for file ops, process, and environment helpers
Snider Jun 28, 2026
7d32eab
docs(action): Example Action.Enable/Disable/Enabled
Snider Jun 28, 2026
26ab35e
docs: Example LSPRegisterDiagnostic/DiagnosticSources/Serve, WithCli,…
Snider Jun 28, 2026
5298649
docs(cli,os): Example CliRegister + Cli Print/SetOutput/Run/PrintHelp…
Snider Jun 28, 2026
563499b
test(assert): benchmarks for all 27 Assert/Require helpers (success p…
Snider Jun 28, 2026
7de10c6
test(os): benchmarks for fs/process/env wrappers (Exit excluded — ter…
Snider Jun 28, 2026
961c8b8
test(lsp): benchmarks for the diagnostic pipeline (compute + sources)
Snider Jun 28, 2026
19568bf
test(cli): benchmarks for CliRegister + Cli Print/SetOutput/SetBanner…
Snider Jun 28, 2026
254294e
test(process): benchmarks for Process façade (Run/RunIn/RunWithEnv/St…
Snider Jun 28, 2026
fea15b8
test(fs): benchmarks for WriteStream/WriteAll/WalkSeq/WalkSeqSkip/Wal…
Snider Jun 28, 2026
dfefc54
test(core): benchmarks for Feature/WithContext/Must/RunResult/Run (+ …
Snider Jun 28, 2026
d5de191
test(config): benchmarks for Config.Group + Feature.Name/Enable/Disab…
Snider Jun 28, 2026
fdd208d
test(command,signal): benchmarks for Command tree + Signal façade
Snider Jun 28, 2026
1faeb20
test(time,log): benchmarks for Sleep/After/Tick/timers + Log Debug/Wa…
Snider Jun 28, 2026
2db597e
test(time,log): timers/Sleep + Log methods, LogPanic.Recover, and pac…
Snider Jun 28, 2026
4a3dd36
test(error,action): ErrorLog.Must/ErrorPanic.Recover/SafeGo + Core.Pe…
Snider Jun 28, 2026
9ee58ef
test(unsafe,reflect,string,array): PinnedView Len/Bytes/Active, MakeM…
Snider Jun 28, 2026
7672883
test(contract,template): WithService + ParseTemplateFiles
Snider Jun 28, 2026
ac055cc
test(net): benchmarks for NetListen/NetListenPacket/NetDial/NetDialTi…
Snider Jun 28, 2026
779653f
test(assert): typed-compare benches (uint64/float64 ordering branches)
Snider Jun 28, 2026
2e5dccc
test(runtime): benchmarks for Runtime.ServiceStartup/ServiceShutdown …
Snider Jun 28, 2026
18bc35c
test(cli_assert): benchmark AssertCLI (success path; AssertCLIs needs…
Snider Jun 28, 2026
65729ee
test(embed): MountEmbed/EmbedFS (compile-time embed.FS) + ScanAssets/…
Snider Jun 28, 2026
786650b
test(embed): benchmark Extract (covers isTemplate/renderPath/copyFile)
Snider Jun 28, 2026
f409e76
test(data): benchmark Data.Extract (mount + extract path)
Snider Jun 28, 2026
fb959ae
test(api): benchmarks for API.Stream/Call + Core.RemoteAction (mock p…
Snider Jun 28, 2026
af9c188
test(alloc): allocation-regression gates for hot primitives (AllocsPe…
Snider Jun 28, 2026
7194031
test(alloc): extend regression gates — atomics, more math, Result.Or,…
Snider Jun 28, 2026
c1cf230
perf(lsp): compile naming-diagnostic regexes once, not per call
Snider Jun 28, 2026
476593e
test(alloc): gate LSPComputeDiagnostics at <=70 allocs (locks the reg…
Snider Jun 28, 2026
6551be4
test(lsp): white-box benchmarks for the JSON-RPC server loop
Snider Jun 28, 2026
8459346
test(bench): white-box benches for unexported helpers + Println/HTTPL…
Snider Jun 28, 2026
1f59e31
perf(utils): pre-size FilterArgs result slice (was unpresized regrow …
Snider Jun 28, 2026
da65052
perf: pre-size slice builders in Data names / IPC query results / Reg…
Snider Jun 28, 2026
e2ba33a
perf: pre-size remaining slice builders (EnabledFeatures, Startables/…
Snider Jun 28, 2026
a088bc3
test(alloc): gate FilterArgs at its pre-sized floor (1 alloc)
Snider Jun 28, 2026
597d072
feat(core): add generic Pool[T] — mutex-guarded LIFO free-list
Snider Jul 5, 2026
22a06aa
feat(core): Coalesce, FirstPositive, SliceEqual, Result.Err — dedup p…
Snider Jul 5, 2026
4058238
feat(core): FirstNonBlank — whitespace-aware first-meaningful-string
Snider Jul 5, 2026
d86a36a
feat(core): MapString — safe typed string accessor for map[K]any
Snider Jul 5, 2026
15a005f
fix(core): restore library build on dev — PathWalkDir Result, lock re…
Snider Jul 5, 2026
c0ebb9e
fix(core): complete the incomplete error->Result migration + stale ex…
Snider Jul 5, 2026
fca6593
Merge fix/core-dev-build — fixed latest core dev + dedup primitives
Snider Jul 5, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
287 changes: 287 additions & 0 deletions LICENCE
Original file line number Diff line number Diff line change
@@ -0,0 +1,287 @@
EUROPEAN UNION PUBLIC LICENCE v. 1.2
EUPL © the European Union 2007, 2016

This European Union Public Licence (the ‘EUPL’) applies to the Work (as defined
below) which is provided under the terms of this Licence. Any use of the Work,
other than as authorised under this Licence is prohibited (to the extent such
use is covered by a right of the copyright holder of the Work).

The Work is provided under the terms of this Licence when the Licensor (as
defined below) has placed the following notice immediately following the
copyright notice for the Work:

Licensed under the EUPL

or has expressed by any other means his willingness to license under the EUPL.

1. Definitions

In this Licence, the following terms have the following meaning:

- ‘The Licence’: this Licence.

- ‘The Original Work’: the work or software distributed or communicated by the
Licensor under this Licence, available as Source Code and also as Executable
Code as the case may be.

- ‘Derivative Works’: the works or software that could be created by the
Licensee, based upon the Original Work or modifications thereof. This Licence
does not define the extent of modification or dependence on the Original Work
required in order to classify a work as a Derivative Work; this extent is
determined by copyright law applicable in the country mentioned in Article 15.

- ‘The Work’: the Original Work or its Derivative Works.

- ‘The Source Code’: the human-readable form of the Work which is the most
convenient for people to study and modify.

- ‘The Executable Code’: any code which has generally been compiled and which is
meant to be interpreted by a computer as a program.

- ‘The Licensor’: the natural or legal person that distributes or communicates
the Work under the Licence.

- ‘Contributor(s)’: any natural or legal person who modifies the Work under the
Licence, or otherwise contributes to the creation of a Derivative Work.

- ‘The Licensee’ or ‘You’: any natural or legal person who makes any usage of
the Work under the terms of the Licence.

- ‘Distribution’ or ‘Communication’: any act of selling, giving, lending,
renting, distributing, communicating, transmitting, or otherwise making
available, online or offline, copies of the Work or providing access to its
essential functionalities at the disposal of any other natural or legal
person.

2. Scope of the rights granted by the Licence

The Licensor hereby grants You a worldwide, royalty-free, non-exclusive,
sublicensable licence to do the following, for the duration of copyright vested
in the Original Work:

- use the Work in any circumstance and for all usage,
- reproduce the Work,
- modify the Work, and make Derivative Works based upon the Work,
- communicate to the public, including the right to make available or display
the Work or copies thereof to the public and perform publicly, as the case may
be, the Work,
- distribute the Work or copies thereof,
- lend and rent the Work or copies thereof,
- sublicense rights in the Work or copies thereof.

Those rights can be exercised on any media, supports and formats, whether now
known or later invented, as far as the applicable law permits so.

In the countries where moral rights apply, the Licensor waives his right to
exercise his moral right to the extent allowed by law in order to make effective
the licence of the economic rights here above listed.

The Licensor grants to the Licensee royalty-free, non-exclusive usage rights to
any patents held by the Licensor, to the extent necessary to make use of the
rights granted on the Work under this Licence.

3. Communication of the Source Code

The Licensor may provide the Work either in its Source Code form, or as
Executable Code. If the Work is provided as Executable Code, the Licensor
provides in addition a machine-readable copy of the Source Code of the Work
along with each copy of the Work that the Licensor distributes or indicates, in
a notice following the copyright notice attached to the Work, a repository where
the Source Code is easily and freely accessible for as long as the Licensor
continues to distribute or communicate the Work.

4. Limitations on copyright

Nothing in this Licence is intended to deprive the Licensee of the benefits from
any exception or limitation to the exclusive rights of the rights owners in the
Work, of the exhaustion of those rights or of other applicable limitations
thereto.

5. Obligations of the Licensee

The grant of the rights mentioned above is subject to some restrictions and
obligations imposed on the Licensee. Those obligations are the following:

Attribution right: The Licensee shall keep intact all copyright, patent or
trademarks notices and all notices that refer to the Licence and to the
disclaimer of warranties. The Licensee must include a copy of such notices and a
copy of the Licence with every copy of the Work he/she distributes or
communicates. The Licensee must cause any Derivative Work to carry prominent
notices stating that the Work has been modified and the date of modification.

Copyleft clause: If the Licensee distributes or communicates copies of the
Original Works or Derivative Works, this Distribution or Communication will be
done under the terms of this Licence or of a later version of this Licence
unless the Original Work is expressly distributed only under this version of the
Licence — for example by communicating ‘EUPL v. 1.2 only’. The Licensee
(becoming Licensor) cannot offer or impose any additional terms or conditions on
the Work or Derivative Work that alter or restrict the terms of the Licence.

Compatibility clause: If the Licensee Distributes or Communicates Derivative
Works or copies thereof based upon both the Work and another work licensed under
a Compatible Licence, this Distribution or Communication can be done under the
terms of this Compatible Licence. For the sake of this clause, ‘Compatible
Licence’ refers to the licences listed in the appendix attached to this Licence.
Should the Licensee's obligations under the Compatible Licence conflict with
his/her obligations under this Licence, the obligations of the Compatible
Licence shall prevail.

Provision of Source Code: When distributing or communicating copies of the Work,
the Licensee will provide a machine-readable copy of the Source Code or indicate
a repository where this Source will be easily and freely available for as long
as the Licensee continues to distribute or communicate the Work.

Legal Protection: This Licence does not grant permission to use the trade names,
trademarks, service marks, or names of the Licensor, except as required for
reasonable and customary use in describing the origin of the Work and
reproducing the content of the copyright notice.

6. Chain of Authorship

The original Licensor warrants that the copyright in the Original Work granted
hereunder is owned by him/her or licensed to him/her and that he/she has the
power and authority to grant the Licence.

Each Contributor warrants that the copyright in the modifications he/she brings
to the Work are owned by him/her or licensed to him/her and that he/she has the
power and authority to grant the Licence.

Each time You accept the Licence, the original Licensor and subsequent
Contributors grant You a licence to their contributions to the Work, under the
terms of this Licence.

7. Disclaimer of Warranty

The Work is a work in progress, which is continuously improved by numerous
Contributors. It is not a finished work and may therefore contain defects or
‘bugs’ inherent to this type of development.

For the above reason, the Work is provided under the Licence on an ‘as is’ basis
and without warranties of any kind concerning the Work, including without
limitation merchantability, fitness for a particular purpose, absence of defects
or errors, accuracy, non-infringement of intellectual property rights other than
copyright as stated in Article 6 of this Licence.

This disclaimer of warranty is an essential part of the Licence and a condition
for the grant of any rights to the Work.

8. Disclaimer of Liability

Except in the cases of wilful misconduct or damages directly caused to natural
persons, the Licensor will in no event be liable for any direct or indirect,
material or moral, damages of any kind, arising out of the Licence or of the use
of the Work, including without limitation, damages for loss of goodwill, work
stoppage, computer failure or malfunction, loss of data or any commercial
damage, even if the Licensor has been advised of the possibility of such damage.
However, the Licensor will be liable under statutory product liability laws as
far such laws apply to the Work.

9. Additional agreements

While distributing the Work, You may choose to conclude an additional agreement,
defining obligations or services consistent with this Licence. However, if
accepting obligations, You may act only on your own behalf and on your sole
responsibility, not on behalf of the original Licensor or any other Contributor,
and only if You agree to indemnify, defend, and hold each Contributor harmless
for any liability incurred by, or claims asserted against such Contributor by
the fact You have accepted any warranty or additional liability.

10. Acceptance of the Licence

The provisions of this Licence can be accepted by clicking on an icon ‘I agree’
placed under the bottom of a window displaying the text of this Licence or by
affirming consent in any other similar way, in accordance with the rules of
applicable law. Clicking on that icon indicates your clear and irrevocable
acceptance of this Licence and all of its terms and conditions.

Similarly, you irrevocably accept this Licence and all of its terms and
conditions by exercising any rights granted to You by Article 2 of this Licence,
such as the use of the Work, the creation by You of a Derivative Work or the
Distribution or Communication by You of the Work or copies thereof.

11. Information to the public

In case of any Distribution or Communication of the Work by means of electronic
communication by You (for example, by offering to download the Work from a
remote location) the distribution channel or media (for example, a website) must
at least provide to the public the information requested by the applicable law
regarding the Licensor, the Licence and the way it may be accessible, concluded,
stored and reproduced by the Licensee.

12. Termination of the Licence

The Licence and the rights granted hereunder will terminate automatically upon
any breach by the Licensee of the terms of the Licence.

Such a termination will not terminate the licences of any person who has
received the Work from the Licensee under the Licence, provided such persons
remain in full compliance with the Licence.

13. Miscellaneous

Without prejudice of Article 9 above, the Licence represents the complete
agreement between the Parties as to the Work.

If any provision of the Licence is invalid or unenforceable under applicable
law, this will not affect the validity or enforceability of the Licence as a
whole. Such provision will be construed or reformed so as necessary to make it
valid and enforceable.

The European Commission may publish other linguistic versions or new versions of
this Licence or updated versions of the Appendix, so far this is required and
reasonable, without reducing the scope of the rights granted by the Licence. New
versions of the Licence will be published with a unique version number.

All linguistic versions of this Licence, approved by the European Commission,
have identical value. Parties can take advantage of the linguistic version of
their choice.

14. Jurisdiction

Without prejudice to specific agreement between parties,

- any litigation resulting from the interpretation of this License, arising
between the European Union institutions, bodies, offices or agencies, as a
Licensor, and any Licensee, will be subject to the jurisdiction of the Court
of Justice of the European Union, as laid down in article 272 of the Treaty on
the Functioning of the European Union,

- any litigation arising between other parties and resulting from the
interpretation of this License, will be subject to the exclusive jurisdiction
of the competent court where the Licensor resides or conducts its primary
business.

15. Applicable Law

Without prejudice to specific agreement between parties,

- this Licence shall be governed by the law of the European Union Member State
where the Licensor has his seat, resides or has his registered office,

- this licence shall be governed by Belgian law if the Licensor has no seat,
residence or registered office inside a European Union Member State.

Appendix

‘Compatible Licences’ according to Article 5 EUPL are:

- GNU General Public License (GPL) v. 2, v. 3
- GNU Affero General Public License (AGPL) v. 3
- Open Software License (OSL) v. 2.1, v. 3.0
- Eclipse Public License (EPL) v. 1.0
- CeCILL v. 2.0, v. 2.1
- Mozilla Public Licence (MPL) v. 2
- GNU Lesser General Public Licence (LGPL) v. 2.1, v. 3
- Creative Commons Attribution-ShareAlike v. 3.0 Unported (CC BY-SA 3.0) for
works other than software
- European Union Public Licence (EUPL) v. 1.1, v. 1.2
- Québec Free and Open-Source Licence — Reciprocity (LiLiQ-R) or Strong
Reciprocity (LiLiQ-R+).

The European Commission may update this Appendix to later versions of the above
licences without producing a new version of the EUPL, as long as they provide
the rights granted in Article 2 of this Licence and protect the covered Source
Code from exclusive appropriation.

All other changes or additions to this Appendix require the production of a new
EUPL version.
Loading
Loading