@effekt-lang/effekt 0.56.0 → 0.58.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/bin/effekt +0 -0
- package/libraries/common/array.effekt +107 -104
- package/libraries/common/buffer.effekt +3 -3
- package/libraries/common/bytearray.effekt +41 -18
- package/libraries/common/control.effekt +27 -0
- package/libraries/common/dictionary.effekt +13 -13
- package/libraries/common/effekt.effekt +27 -24
- package/libraries/common/heap.effekt +23 -15
- package/libraries/common/io/filesystem.effekt +2 -2
- package/libraries/common/list.effekt +4 -3
- package/libraries/common/queue.effekt +3 -3
- package/libraries/common/ref.effekt +2 -2
- package/libraries/common/resizable_array.effekt +39 -73
- package/libraries/common/seq.effekt +7 -7
- package/libraries/common/stream.effekt +3 -22
- package/libraries/common/string.effekt +1 -1
- package/libraries/common/stringbuffer.effekt +1 -1
- package/libraries/llvm/rts.ll +1 -0
- package/licenses/eclipse public license, version 2.0 - epl-2.0.html +2 -2
- package/licenses/mit license - mit-license.html +16 -16
- package/licenses/the bsd license - bsd-license.html +17 -17
- package/licenses/the mit license - mit.html +16 -16
- package/package.json +1 -1
|
@@ -21,42 +21,26 @@ def size[T](arr: ResizableArray[T]) = arr.rawSizePtr.get
|
|
|
21
21
|
|
|
22
22
|
/// Allocate a new, empty dynamic array with given initial capacity
|
|
23
23
|
def resizableArray[T](capacity: Int): ResizableArray[T] = {
|
|
24
|
-
ResizableArray(ref(0), ref(
|
|
24
|
+
ResizableArray(ref(0), ref(unsafeAllocate(capacity)))
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
-
///
|
|
27
|
+
/// Aallocate a new, empty dynamic array
|
|
28
28
|
def resizableArray[T](): ResizableArray[T] = resizableArray(8)
|
|
29
29
|
|
|
30
|
+
|
|
30
31
|
/// Throw an OutOfBounds exception if index is not a valid index into arr
|
|
31
|
-
def boundsCheck[T](arr: ResizableArray[T], index: Int): Unit / Exception[OutOfBounds] =
|
|
32
|
+
def boundsCheck[T](arr: ResizableArray[T], index: Int): Unit / Exception[OutOfBounds] =
|
|
32
33
|
if (index < 0 || index >= arr.size) {
|
|
33
34
|
do raise(OutOfBounds(), "Array index out of bounds: " ++ show(index))
|
|
34
35
|
}
|
|
35
|
-
}
|
|
36
36
|
|
|
37
|
-
|
|
38
|
-
///
|
|
39
|
-
/// precondition: index is a valid index into the array
|
|
40
|
-
///
|
|
41
|
-
/// O(1)
|
|
42
|
-
def unsafeGet[T](arr: ResizableArray[T], index: Int): T = {
|
|
43
|
-
arr.rawContentPtr.get.unsafeGet(index)
|
|
44
|
-
}
|
|
37
|
+
|
|
45
38
|
/// get the element at position index in the array
|
|
46
39
|
///
|
|
47
40
|
/// O(1)
|
|
48
41
|
def get[T](arr: ResizableArray[T], index: Int): T / Exception[OutOfBounds] = {
|
|
49
42
|
arr.boundsCheck(index);
|
|
50
|
-
arr.
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
/// set the element at position index in the array
|
|
54
|
-
///
|
|
55
|
-
/// precondition: index is a valid index into the array
|
|
56
|
-
///
|
|
57
|
-
/// O(1)
|
|
58
|
-
def unsafeSet[T](arr: ResizableArray[T], index: Int, value: T): Unit = {
|
|
59
|
-
arr.rawContentPtr.get.unsafeSet(index, value)
|
|
43
|
+
arr.rawContentPtr.get.get(index)
|
|
60
44
|
}
|
|
61
45
|
|
|
62
46
|
/// set the element at position index in the array
|
|
@@ -64,19 +48,7 @@ def unsafeSet[T](arr: ResizableArray[T], index: Int, value: T): Unit = {
|
|
|
64
48
|
/// O(1)
|
|
65
49
|
def set[T](arr: ResizableArray[T], index: Int, value: T): Unit / Exception[OutOfBounds] = {
|
|
66
50
|
arr.boundsCheck(index);
|
|
67
|
-
arr.
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
/// swap the elements at the given positions in the array
|
|
71
|
-
///
|
|
72
|
-
/// precondition: both are valid indices into the array
|
|
73
|
-
///
|
|
74
|
-
/// O(1)
|
|
75
|
-
def unsafeSwap[T](arr: ResizableArray[T], index1: Int, index2: Int): Unit = {
|
|
76
|
-
val raw = arr.rawContentPtr.get
|
|
77
|
-
val tmp = raw.unsafeGet(index1)
|
|
78
|
-
raw.unsafeSet(index1, raw.unsafeGet(index2))
|
|
79
|
-
raw.unsafeSet(index2, tmp)
|
|
51
|
+
arr.rawContentPtr.get.set(index, value)
|
|
80
52
|
}
|
|
81
53
|
|
|
82
54
|
/// swap the elements at the given positions in the array
|
|
@@ -84,22 +56,10 @@ def unsafeSwap[T](arr: ResizableArray[T], index1: Int, index2: Int): Unit = {
|
|
|
84
56
|
/// O(1)
|
|
85
57
|
def swap[T](arr: ResizableArray[T], index1: Int, index2: Int): Unit / Exception[OutOfBounds] = {
|
|
86
58
|
arr.boundsCheck(max(index1, index2))
|
|
87
|
-
arr.
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
///
|
|
92
|
-
/// precondition: given capacity is at least the size of the array
|
|
93
|
-
///
|
|
94
|
-
/// O(n)
|
|
95
|
-
def unsafeSetCapacity[T](arr: ResizableArray[T], capacity: Int): Unit = {
|
|
96
|
-
with on[OutOfBounds].panic
|
|
97
|
-
val oldRaw = arr.rawContentPtr.get
|
|
98
|
-
if (oldRaw.size != capacity) {
|
|
99
|
-
val newRaw = array::allocate(capacity)
|
|
100
|
-
oldRaw.copy(0, newRaw, 0, arr.size)
|
|
101
|
-
arr.rawContentPtr.set(newRaw)
|
|
102
|
-
}
|
|
59
|
+
val raw = arr.rawContentPtr.get
|
|
60
|
+
val tmp = raw.get(index1)
|
|
61
|
+
raw.set(index1, raw.get(index2))
|
|
62
|
+
raw.set(index2, tmp)
|
|
103
63
|
}
|
|
104
64
|
|
|
105
65
|
/// Change the resizable array to have exactly the given capacity.
|
|
@@ -110,16 +70,21 @@ def setCapacity[T](arr: ResizableArray[T], capacity: Int): Unit / Exception[OutO
|
|
|
110
70
|
if (arr.size > capacity) {
|
|
111
71
|
do raise(OutOfBounds(), "Cannot change capacity of ResizableArray to " ++ capacity.show ++ " below size " ++ arr.size.show)
|
|
112
72
|
}
|
|
113
|
-
arr.
|
|
73
|
+
val oldRaw = arr.rawContentPtr.get
|
|
74
|
+
if (oldRaw.size != capacity) {
|
|
75
|
+
val newRaw = array::unsafeAllocate(capacity)
|
|
76
|
+
oldRaw.copy(0, newRaw, 0, arr.size)
|
|
77
|
+
arr.rawContentPtr.set(newRaw)
|
|
78
|
+
}
|
|
114
79
|
}
|
|
115
80
|
|
|
116
81
|
/// If the shrinkThreshold is reached, shrink by growFactor, otherwise do nothing
|
|
117
82
|
///
|
|
118
83
|
/// O(n)
|
|
119
|
-
def maybeShrink[T](arr: ResizableArray[T]): Unit = {
|
|
84
|
+
def maybeShrink[T](arr: ResizableArray[T]): Unit / Exception[OutOfBounds] = {
|
|
120
85
|
if(arr.size.toDouble < arr.rawContentPtr.get.size.toDouble * shrinkThreshold) {
|
|
121
86
|
val newCap = max(arr.size, (arr.rawContentPtr.get.size.toDouble / growFactor).ceil)
|
|
122
|
-
arr.
|
|
87
|
+
arr.setCapacity(newCap)
|
|
123
88
|
}
|
|
124
89
|
}
|
|
125
90
|
|
|
@@ -144,11 +109,11 @@ def setResizing[T](arr: ResizableArray[T], index: Int, value: T): Unit / Excepti
|
|
|
144
109
|
do raise(OutOfBounds(), "Negative index " ++ index.show)
|
|
145
110
|
}
|
|
146
111
|
if (index < arr.size) {
|
|
147
|
-
arr.rawContentPtr.get.
|
|
112
|
+
arr.rawContentPtr.get.set(index, value)
|
|
148
113
|
}
|
|
149
114
|
ensureCapacity(arr, index + 1)
|
|
150
|
-
arr.rawContentPtr.get.
|
|
151
|
-
arr.rawSizePtr.set(index + 1)
|
|
115
|
+
arr.rawContentPtr.get.set(index, value)
|
|
116
|
+
if (index >= arr.size) arr.rawSizePtr.set(index + 1)
|
|
152
117
|
}
|
|
153
118
|
|
|
154
119
|
/// Add a new element at the end of the resizable array.
|
|
@@ -166,9 +131,10 @@ def add[T](arr: ResizableArray[T], value: T): Int = {
|
|
|
166
131
|
///
|
|
167
132
|
/// O(1) amortized, O(n) worst case
|
|
168
133
|
def popRight[T](arr: ResizableArray[T]): T / Exception[OutOfBounds] = {
|
|
169
|
-
arr.
|
|
170
|
-
arr.
|
|
171
|
-
val r = arr.
|
|
134
|
+
val last = arr.size - 1
|
|
135
|
+
arr.boundsCheck(last)
|
|
136
|
+
val r = arr.rawContentPtr.get.get(last)
|
|
137
|
+
arr.rawSizePtr.set(last)
|
|
172
138
|
arr.maybeShrink()
|
|
173
139
|
r
|
|
174
140
|
}
|
|
@@ -176,51 +142,51 @@ def popRight[T](arr: ResizableArray[T]): T / Exception[OutOfBounds] = {
|
|
|
176
142
|
|
|
177
143
|
def foreachIndex[T](arr: ResizableArray[T]){ body: (Int, T) => Unit }: Unit = {
|
|
178
144
|
each(0, arr.size) { i =>
|
|
179
|
-
body(i, arr.rawContentPtr.get.
|
|
145
|
+
body(i, arr.rawContentPtr.get.get(i))
|
|
180
146
|
}
|
|
181
147
|
}
|
|
182
|
-
def foreachIndex[T](arr: ResizableArray[T]){ body: (Int, T) {
|
|
148
|
+
def foreachIndex[T](arr: ResizableArray[T]){ body: (Int, T) {Label} => Unit }: Unit = {
|
|
183
149
|
each(0, arr.size) { (i){label} =>
|
|
184
|
-
body(i, arr.rawContentPtr.get.
|
|
150
|
+
body(i, arr.rawContentPtr.get.get(i)){label}
|
|
185
151
|
}
|
|
186
152
|
}
|
|
187
153
|
def foreach[T](arr: ResizableArray[T]){ body: T => Unit }: Unit = {
|
|
188
154
|
each(0, arr.size) { i =>
|
|
189
|
-
body(arr.rawContentPtr.get.
|
|
155
|
+
body(arr.rawContentPtr.get.get(i))
|
|
190
156
|
}
|
|
191
157
|
}
|
|
192
|
-
def foreach[T](arr: ResizableArray[T]){ body: (T) {
|
|
158
|
+
def foreach[T](arr: ResizableArray[T]){ body: (T) {Label} => Unit }: Unit = {
|
|
193
159
|
each(0, arr.size) { (i){label} =>
|
|
194
|
-
body(arr.rawContentPtr.get.
|
|
160
|
+
body(arr.rawContentPtr.get.get(i)){label}
|
|
195
161
|
}
|
|
196
162
|
}
|
|
197
|
-
def foreachIndexReversed[T](arr: ResizableArray[T]){ body: (Int, T){
|
|
163
|
+
def foreachIndexReversed[T](arr: ResizableArray[T]){ body: (Int, T){Label} => Unit }: Unit = {
|
|
198
164
|
var i = arr.size - 1
|
|
199
165
|
loop { {l} =>
|
|
200
166
|
if (i < 0) { l.break() }
|
|
201
|
-
body(i, arr.rawContentPtr.get.
|
|
167
|
+
body(i, arr.rawContentPtr.get.get(i)){l}
|
|
202
168
|
i = i - 1
|
|
203
169
|
}
|
|
204
170
|
}
|
|
205
171
|
def foreachIndexReversed[T](arr: ResizableArray[T]){ body: (Int, T) => Unit }: Unit = {
|
|
206
172
|
var i = arr.size - 1
|
|
207
173
|
while(i >= 0) {
|
|
208
|
-
body(i, arr.rawContentPtr.get.
|
|
174
|
+
body(i, arr.rawContentPtr.get.get(i))
|
|
209
175
|
i = i - 1
|
|
210
176
|
}
|
|
211
177
|
}
|
|
212
|
-
def foreachReversed[T](arr: ResizableArray[T]){ body: (T){
|
|
178
|
+
def foreachReversed[T](arr: ResizableArray[T]){ body: (T){Label} => Unit }: Unit = {
|
|
213
179
|
var i = arr.size - 1
|
|
214
180
|
loop { {l} =>
|
|
215
181
|
if (i < 0) { l.break() }
|
|
216
|
-
body(arr.rawContentPtr.get.
|
|
182
|
+
body(arr.rawContentPtr.get.get(i)){l}
|
|
217
183
|
i = i - 1
|
|
218
184
|
}
|
|
219
185
|
}
|
|
220
186
|
def foreachReversed[T](arr: ResizableArray[T]){ body: T => Unit }: Unit = {
|
|
221
187
|
var i = arr.size - 1
|
|
222
188
|
while (i >= 0) {
|
|
223
|
-
body(arr.rawContentPtr.get.
|
|
189
|
+
body(arr.rawContentPtr.get.get(i))
|
|
224
190
|
i = i - 1
|
|
225
191
|
}
|
|
226
192
|
}
|
|
@@ -228,7 +194,7 @@ def foreachReversed[T](arr: ResizableArray[T]){ body: T => Unit }: Unit = {
|
|
|
228
194
|
def toList[T](arr: ResizableArray[T]): List[T] = {
|
|
229
195
|
def go(i: Int, acc: List[T]): List[T] = {
|
|
230
196
|
if (i < 0) { acc } else {
|
|
231
|
-
go(i - 1, Cons(arr.
|
|
197
|
+
go(i - 1, Cons(arr.rawContentPtr.get.get(i), acc))
|
|
232
198
|
}
|
|
233
199
|
}
|
|
234
200
|
go(arr.size - 1, Nil())
|
|
@@ -579,14 +579,14 @@ def each[A](seq: Seq[A]) { consume: (A) => Unit }: Unit = {
|
|
|
579
579
|
}
|
|
580
580
|
}
|
|
581
581
|
|
|
582
|
-
def each[A](seq: Seq[A]) { f: (A) {
|
|
582
|
+
def each[A](seq: Seq[A]) { f: (A) {Label} => Unit }: Unit = try {
|
|
583
583
|
seq.each { (el) =>
|
|
584
|
-
try { f(el) {inner} } with inner:
|
|
584
|
+
try { f(el) {inner} } with inner: Label {
|
|
585
585
|
def break() = outer.break()
|
|
586
586
|
def continue() = ()
|
|
587
587
|
}
|
|
588
588
|
}
|
|
589
|
-
} with outer:
|
|
589
|
+
} with outer: Label {
|
|
590
590
|
def break() = ()
|
|
591
591
|
def continue() = ()
|
|
592
592
|
}
|
|
@@ -627,14 +627,14 @@ def eachReverse[A](seq: Seq[A]) { consume: A => Unit }: Unit = {
|
|
|
627
627
|
}
|
|
628
628
|
}
|
|
629
629
|
|
|
630
|
-
def eachReverse[A](seq: Seq[A]) { f: (A) {
|
|
630
|
+
def eachReverse[A](seq: Seq[A]) { f: (A) {Label} => Unit }: Unit = try {
|
|
631
631
|
seq.eachReverse { (el) =>
|
|
632
|
-
try { f(el) {inner} } with inner:
|
|
632
|
+
try { f(el) {inner} } with inner: Label {
|
|
633
633
|
def break() = outer.break()
|
|
634
634
|
def continue() = ()
|
|
635
635
|
}
|
|
636
636
|
}
|
|
637
|
-
} with outer:
|
|
637
|
+
} with outer: Label {
|
|
638
638
|
def break() = ()
|
|
639
639
|
def continue() = ()
|
|
640
640
|
}
|
|
@@ -854,7 +854,7 @@ def map[A, B](seq: Seq[A]) { f: A => B }: Seq[B] = {
|
|
|
854
854
|
result
|
|
855
855
|
}
|
|
856
856
|
|
|
857
|
-
def map[A, B](seq: Seq[A]) { f: (A) {
|
|
857
|
+
def map[A, B](seq: Seq[A]) { f: (A) {Label} => B }: Seq[B] = {
|
|
858
858
|
var result: Seq[B] = Empty()
|
|
859
859
|
seq.each { (a) {label} => result = result.consRight(f(a) {label}) }
|
|
860
860
|
result
|
|
@@ -15,8 +15,6 @@ effect emit[A](value: A): Unit
|
|
|
15
15
|
/// The producer can decide to `stop` emitting values.
|
|
16
16
|
effect read[A](): A / stop
|
|
17
17
|
|
|
18
|
-
/// Signal from a producer to a consumer that there are no further values.
|
|
19
|
-
effect stop(): Nothing
|
|
20
18
|
|
|
21
19
|
/// Like `for[A, R]`, but ignores the result of the stream, and consequently
|
|
22
20
|
/// works for any type. Use this to annotate the type of stream elements
|
|
@@ -50,25 +48,8 @@ def fix[T] { one: T => Unit / emit[T] } { stream: => Unit / emit[T] }: Unit =
|
|
|
50
48
|
}
|
|
51
49
|
|
|
52
50
|
|
|
53
|
-
def boundary { program: () => Unit / stop }: Unit = {
|
|
54
|
-
returning::boundary[Unit]{program}
|
|
55
|
-
()
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
/// Run `program` forever until `stop` is thrown.
|
|
59
|
-
def exhaustively { program: () => Unit / stop }: Unit =
|
|
60
|
-
try {
|
|
61
|
-
def go(): Unit = {
|
|
62
|
-
program()
|
|
63
|
-
go()
|
|
64
|
-
}
|
|
65
|
-
go()
|
|
66
|
-
} with stop {
|
|
67
|
-
()
|
|
68
|
-
}
|
|
69
|
-
|
|
70
51
|
def many[A] { action: () => A / stop }: Unit / emit[A] =
|
|
71
|
-
|
|
52
|
+
loop { do emit(action()) }
|
|
72
53
|
|
|
73
54
|
def some[A] { action: () => A / stop }: Unit / { emit[A], stop } = {
|
|
74
55
|
do emit(action())
|
|
@@ -230,7 +211,7 @@ def zip[A, B] { stream1: () => Unit / emit[A] } { stream2: () => Unit / emit[B]
|
|
|
230
211
|
with source[A] { stream1 }
|
|
231
212
|
with source[B] { stream2 }
|
|
232
213
|
|
|
233
|
-
|
|
214
|
+
loop {
|
|
234
215
|
action(do read(), do read())
|
|
235
216
|
}
|
|
236
217
|
}
|
|
@@ -241,7 +222,7 @@ def zipLongest[A, B] { stream1: () => Unit / emit[A] } { stream2: () => Unit / e
|
|
|
241
222
|
with source[A] { stream1 }
|
|
242
223
|
with source[B] { stream2 }
|
|
243
224
|
|
|
244
|
-
|
|
225
|
+
loop {
|
|
245
226
|
try {
|
|
246
227
|
val a = do read[A]()
|
|
247
228
|
try {
|
package/libraries/llvm/rts.ll
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<!doctype html><html lang=en><head><meta charset=utf-8><meta http-equiv=X-UA-Compatible content="IE=edge"><meta name=viewport content="width=device-width,initial-scale=1"><title>Eclipse Public License 2.0 (EPL) | The Eclipse Foundation</title>
|
|
2
|
-
<meta property="og:title" content="Eclipse Public License 2.0 (EPL) | The Eclipse Foundation"><meta name=twitter:title content="Eclipse Public License 2.0 (EPL) | The Eclipse Foundation"><meta name=description content="The Eclipse Foundation provides our global community of individuals and organisations with a mature, scalable, and business-friendly environment for open source …"><meta property="og:description" content="The Eclipse Foundation provides our global community of individuals and organisations with a mature, scalable, and business-friendly environment for open source …"><meta name=twitter:description content="The Eclipse Foundation provides our global community of individuals and organisations with a mature, scalable, and business-friendly environment for open source …"><meta name=author content="Wayne Beaton"><link href=/favicon.ico rel=icon type=image/x-icon><meta property="og:image" content="https://www.eclipse.org/images/og-image.jpg"><meta name=twitter:image content="https://www.eclipse.org/images/og-image.jpg"><meta name=twitter:card content="summary"><meta name=twitter:site content="@eclipsefdn"><meta name=twitter:creator content="@eclipsefdn"><meta property="og:url" content="https://www.eclipse.org/legal/epl-2.0/"><meta property="og:type" content="website"><meta property="og:site_name" content="Eclipse Foundation"><meta name=keywords content="epl,epl-2.0,legal,foundation,eclipse,eclipse public license,license,licenses"><meta name=generator content="Hugo 0.144.2"><link rel=canonical href=https://www.eclipse.org/legal/epl-2.0/><link rel=alternate href=/legal/epl-2.0/index.xml type=application/rss+xml title><link rel=stylesheet href="/public/css/styles.css?v=
|
|
2
|
+
<meta property="og:title" content="Eclipse Public License 2.0 (EPL) | The Eclipse Foundation"><meta name=twitter:title content="Eclipse Public License 2.0 (EPL) | The Eclipse Foundation"><meta name=description content="The Eclipse Foundation provides our global community of individuals and organisations with a mature, scalable, and business-friendly environment for open source …"><meta property="og:description" content="The Eclipse Foundation provides our global community of individuals and organisations with a mature, scalable, and business-friendly environment for open source …"><meta name=twitter:description content="The Eclipse Foundation provides our global community of individuals and organisations with a mature, scalable, and business-friendly environment for open source …"><meta name=author content="Wayne Beaton"><link href=/favicon.ico rel=icon type=image/x-icon><meta property="og:image" content="https://www.eclipse.org/images/og-image.jpg"><meta name=twitter:image content="https://www.eclipse.org/images/og-image.jpg"><meta name=twitter:card content="summary"><meta name=twitter:site content="@eclipsefdn"><meta name=twitter:creator content="@eclipsefdn"><meta property="og:url" content="https://www.eclipse.org/legal/epl-2.0/"><meta property="og:type" content="website"><meta property="og:site_name" content="Eclipse Foundation"><meta name=keywords content="epl,epl-2.0,legal,foundation,eclipse,eclipse public license,license,licenses"><meta name=generator content="Hugo 0.144.2"><link rel=canonical href=https://www.eclipse.org/legal/epl-2.0/><link rel=alternate href=/legal/epl-2.0/index.xml type=application/rss+xml title><link rel=stylesheet href="/public/css/styles.css?v=1768159009"><script>(function(e,t,n,s,o){e[s]=e[s]||[],e[s].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var a=t.getElementsByTagName(n)[0],i=t.createElement(n),r=s!="dataLayer"?"&l="+s:"";i.async=!0,i.src="https://www.googletagmanager.com/gtm.js?id="+o+r,a.parentNode.insertBefore(i,a)})(window,document,"script","dataLayer","GTM-5WLCZXC")</script><script>var tableClasses="table"</script><link href="https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap" rel=stylesheet type=text/css></head><body><noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5WLCZXC" height=0 width=0 style=display:none;visibility:hidden></iframe></noscript><a href=#main class=skip-link>Skip to content</a><div class=eclipsefdn-featured-story-banner data-publish-target=eclipse_org></div><header class="header-wrapper header-wrapper" id=header><div class="navigation-bar dark"><div class=container><div class=navigation-bar-inner><div class=navigation-bar-left><a class="focus-highlight focus-inverse" href=/><img class=navigation-bar-brand src=https://www.eclipse.org/eclipse.org-common/themes/solstice/public/images/logo/eclipse-foundation-white-orange.svg alt="Eclipse Foundation"></a></div><nav class="navigation-bar-nav hidden-xs hidden-sm"><ul><li><button type=button class="btn btn-link" data-target=join-us-menu>Join us</button></li><li><button type=button class="btn btn-link" data-target=what-we-do-menu>What we do</button></li><li><button type=button class="btn btn-link" data-target=resources-menu>Resources</button></li><li><button type=button class="btn btn-link" data-target=about-us-menu>About us</button></li></ul></nav><div class=navigation-bar-right><div class="navigation-bar-controls hidden-xs hidden-sm"><ul><li class=dropdown><a class="dropdown-toggle link-unstyled focus-highlight" tabindex=0 id=search-dropdown-toggle data-toggle=dropdown href=# aria-label=Search><i class="fa-solid fa-magnifying-glass" aria-hidden=true></i></a><form class="search-bar dropdown-menu dropdown-menu-right" aria-labelledby=search-dropdown-toggle action=https://www.eclipse.org/home/search/ method=get><input class=search-bar-input name=q placeholder=Search>
|
|
3
3
|
<button class="btn btn-link" type=submit>
|
|
4
4
|
<i class="fa-solid fa-arrow-right"></i></button></form></li><li class=dropdown><a class="dropdown-toggle focus-highlight" id=user-menu href=# data-toggle=dropdown aria-haspopup=true aria-expanded=false tabindex=0><i class="fa-regular fa-user" aria-hidden=true></i></a><ul class="dropdown-menu dropdown-menu-right" aria-labelledby=user-menu><li><a href=https://accounts.eclipse.org/user><i class="fa-solid fa-user margin-right-10" aria-hidden=true></i>
|
|
5
5
|
View my account</a></li><li><a href=https://accounts.eclipse.org/user/edit><i class="fa-solid fa-edit margin-right-10" aria-hidden=true></i>
|
|
@@ -39,4 +39,4 @@ Manage cookies</a></li></ul></li></ul></div><div class="navigation-bar-ctas hidd
|
|
|
39
39
|
<i class="fa-brands fa-youtube fa-stack-1x fa-inverse" aria-hidden=true></i></span></a></li><li><a href=https://www.linkedin.com/company/eclipse-foundation aria-label=LinkedIn><span class=fa-stack><i class="fa-solid fa-circle fa-stack-2x" aria-hidden=true></i>
|
|
40
40
|
<i class="fa-brands fa-linkedin-in fa-stack-1x fa-inverse" aria-hidden=true></i></span></a></li></ul></section><section class=newsletter-section><p class="subheading text-tertiary">Stay up to date</p><h2>Subscribe to our newsletter</h2><form class="newsletter-form margin-top-40" id=mc-embedded-subscribe-form action="https://eclipse.us6.list-manage.com/subscribe/post?u=eaf9e1f06f194eadc66788a85&id=e7538485cd&f_id=00f9c2e1f0" method=post novalidate target=_blank><div class=text-field-outlined><input name=EMAIL type=email placeholder="Your email">
|
|
41
41
|
<button class=newsletter-form-submit type=submit name=subscribe id=mc-embedded-subscribe aria-label=Submit>
|
|
42
|
-
<i class="fa-solid fa-arrow-right" aria-hidden=true></i></button></div></form></section><section class=footer-bottom-section><img class="img-responsive logo" src=https://www.eclipse.org/eclipse.org-common/themes/solstice/public/images/logo/eclipse-foundation-white.svg alt="Eclipse Foundation"><div class=legal-information><p>Copyright © Eclipse Foundation AISBL. All rights reserved.</p><ul class=legal-links><li><a href=https://www.eclipse.org/legal/privacy/>Privacy policy</a></li><li><a href=https://www.eclipse.org/legal/terms-of-use/>Terms of use</a></li><li><a href=https://www.eclipse.org/legal/compliance/>Compliance</a></li><li><a href=https://www.eclipse.org/legal/>Legal</a></li></ul></div></section></div></div></footer><div id=footer-js><script src="/public/js/main.js?v1.0?v=
|
|
42
|
+
<i class="fa-solid fa-arrow-right" aria-hidden=true></i></button></div></form></section><section class=footer-bottom-section><img class="img-responsive logo" src=https://www.eclipse.org/eclipse.org-common/themes/solstice/public/images/logo/eclipse-foundation-white.svg alt="Eclipse Foundation"><div class=legal-information><p>Copyright © Eclipse Foundation AISBL. All rights reserved.</p><ul class=legal-links><li><a href=https://www.eclipse.org/legal/privacy/>Privacy policy</a></li><li><a href=https://www.eclipse.org/legal/terms-of-use/>Terms of use</a></li><li><a href=https://www.eclipse.org/legal/compliance/>Compliance</a></li><li><a href=https://www.eclipse.org/legal/>Legal</a></li></ul></div></section></div></div></footer><div id=footer-js><script src="/public/js/main.js?v1.0?v=1768159009"></script><script>(function(){})(jQuery,document)</script></div></body></html>
|
|
@@ -268,7 +268,7 @@ body{--pds-tabs-color-accent:var(--wp--preset--color--primary,#333);--pds-tabs-a
|
|
|
268
268
|
:root :where(.wp-block-pullquote){font-size: clamp(0.984em, 0.984rem + ((1vw - 0.2em) * 0.645), 1.5em);line-height: 1.6;}
|
|
269
269
|
/*# sourceURL=global-styles-inline-css */
|
|
270
270
|
</style>
|
|
271
|
-
<link rel='stylesheet' id='webmention-css' href='https://opensource.org/wp-content/plugins/webmention/assets/css/webmention.css?ver=5.
|
|
271
|
+
<link rel='stylesheet' id='webmention-css' href='https://opensource.org/wp-content/plugins/webmention/assets/css/webmention.css?ver=5.6.2' type='text/css' media='all' />
|
|
272
272
|
<link rel='stylesheet' id='comment_styles-css' href='https://opensource.org/wp-content/plugins/wp-discourse/lib/../css/comments.css?ver=1761590360' type='text/css' media='all' />
|
|
273
273
|
<link rel='stylesheet' id='jetpack-instant-search-css' href='https://opensource.org/wp-content/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/build/instant-search/jp-search.chunk-main-payload.css?minify=false&ver=62e24c826fcd11ccbe81' type='text/css' media='all' />
|
|
274
274
|
<link rel='stylesheet' id='cmplz-general-css' href='https://opensource.org/wp-content/plugins/complianz-gdpr/assets/css/cookieblocker.min.css?ver=1765910385' type='text/css' media='all' />
|
|
@@ -288,9 +288,9 @@ body{--pds-tabs-color-accent:var(--wp--preset--color--primary,#333);--pds-tabs-a
|
|
|
288
288
|
/*# sourceURL=osi-style-inline-css */
|
|
289
289
|
</style>
|
|
290
290
|
<link rel='stylesheet' id='swiper-css-css' href='https://unpkg.com/swiper@11/swiper-bundle.min.css?ver=1750065233' type='text/css' media='all' />
|
|
291
|
-
<link rel='stylesheet' id='genericons-css' href='https://
|
|
291
|
+
<link rel='stylesheet' id='genericons-css' href='https://c0.wp.com/p/jetpack/15.4/_inc/genericons/genericons/genericons.css' type='text/css' media='all' />
|
|
292
292
|
<link rel='stylesheet' id='jetpack-social-menu-css' href='https://opensource.org/wp-content/plugins/jetpack/jetpack_vendor/automattic/jetpack-classic-theme-helper/src/social-menu/social-menu.css?ver=1.0' type='text/css' media='all' />
|
|
293
|
-
<link rel='stylesheet' id='nelio-content-premium-series-default-css-css' href='https://opensource.org/wp-content/plugins/nelio-content-premium/includes/features/series/default.css?ver=4.1.
|
|
293
|
+
<link rel='stylesheet' id='nelio-content-premium-series-default-css-css' href='https://opensource.org/wp-content/plugins/nelio-content-premium/includes/features/series/default.css?ver=4.1.1' type='text/css' media='all' />
|
|
294
294
|
<link rel='stylesheet' id='syndication-style-css' href='https://opensource.org/wp-content/plugins/syndication-links/css/syn.min.css?ver=4.5.3' type='text/css' media='all' />
|
|
295
295
|
<script type="text/javascript" id="altcha-widget-custom-options-js-after">
|
|
296
296
|
/* <![CDATA[ */
|
|
@@ -318,13 +318,13 @@ jQuery(function(jQuery){jQuery.datepicker.setDefaults({"closeText":"Close","curr
|
|
|
318
318
|
<script type="text/javascript" src="https://c0.wp.com/c/6.9/wp-includes/js/jquery/ui/dialog.min.js" id="jquery-ui-dialog-js"></script>
|
|
319
319
|
<script type="text/javascript" id="events-manager-js-extra">
|
|
320
320
|
/* <![CDATA[ */
|
|
321
|
-
var EM = {"ajaxurl":"https://opensource.org/wp-admin/admin-ajax.php","locationajaxurl":"https://opensource.org/wp-admin/admin-ajax.php?action=locations_search","firstDay":"1","locale":"en","dateFormat":"yy-mm-dd","ui_css":"https://opensource.org/wp-content/plugins/events-manager/includes/css/jquery-ui/build.min.css","show24hours":"0","is_ssl":"1","autocomplete_limit":"10","calendar":{"breakpoints":{"small":560,"medium":908,"large":false},"month_format":"M Y"},"phone":"","datepicker":{"format":"Y-m-d"},"search":{"breakpoints":{"small":650,"medium":850,"full":false}},"url":"https://opensource.org/wp-content/plugins/events-manager","assets":{"input.em-uploader":{"js":{"em-uploader":{"url":"https://opensource.org/wp-content/plugins/events-manager/includes/js/em-uploader.js?v=7.2.3.1","event":"em_uploader_ready"}}},".em-event-editor":{"js":{"event-editor":{"url":"https://opensource.org/wp-content/plugins/events-manager/includes/js/events-manager-event-editor.js?v=7.2.3.1","event":"em_event_editor_ready"}},"css":{"event-editor":"https://opensource.org/wp-content/plugins/events-manager/includes/css/events-manager-event-editor.min.css?v=7.2.3.1"}},".em-recurrence-sets, .em-timezone":{"js":{"luxon":{"url":"luxon/luxon.js?v=7.2.3.1","event":"em_luxon_ready"}}},".em-booking-form, #em-booking-form, .em-booking-recurring, .em-event-booking-form":{"js":{"em-bookings":{"url":"https://opensource.org/wp-content/plugins/events-manager/includes/js/bookingsform.js?v=7.2.3.1","event":"em_booking_form_js_loaded"},"em-coupons":{"url":"https://opensource.org/wp-content/plugins/events-manager-pro/add-ons/coupons/coupons.js?v=3.7.2.3","requires":"em-bookings"}},"css":{"em-coupons":"https://opensource.org/wp-content/plugins/events-manager-pro/add-ons/coupons/coupons.min.css?v=3.7.2.3"}},"#em-opt-archetypes":{"js":{"archetypes":"https://opensource.org/wp-content/plugins/events-manager/includes/js/admin-archetype-editor.js?v=7.2.3.1","archetypes_ms":"https://opensource.org/wp-content/plugins/events-manager/includes/js/admin-archetypes.js?v=7.2.3.1","qs":"qs/qs.js?v=7.2.3.1"}},".em-cart-coupons-form":{"js":{"em-coupons-cart":{"url":"https://opensource.org/wp-content/plugins/events-manager-pro/add-ons/coupons/coupons-cart.js?v=3.7.2.3","event":"em_timepicker_ready"}},"css":{"em-coupons":"https://opensource.org/wp-content/plugins/events-manager-pro/add-ons/coupons/coupons.min.css?v=3.7.2.3"}}},"cached":"1","bookingInProgress":"Please wait while the booking is being submitted.","tickets_save":"Save Ticket","bookingajaxurl":"https://opensource.org/wp-admin/admin-ajax.php","bookings_export_save":"Export Bookings","bookings_settings_save":"Save Settings","booking_delete":"Are you sure you want to delete?","booking_offset":"30","bookings":{"submit_button":{"text":{"default":"Submit Booking","free":"Submit Booking","payment":"Submit Booking - %s","processing":"Processing ..."}},"update_listener":""},"bb_full":"Sold Out","bb_book":"Book Now","bb_booking":"Booking...","bb_booked":"Booking Submitted","bb_error":"Booking Error. Try again?","bb_cancel":"Cancel","bb_canceling":"Canceling...","bb_cancelled":"Cancelled","bb_cancel_error":"Cancellation Error. Try again?","txt_search":"Search","txt_searching":"Searching...","txt_loading":"Loading...","cache":"1","api_nonce":"
|
|
321
|
+
var EM = {"ajaxurl":"https://opensource.org/wp-admin/admin-ajax.php","locationajaxurl":"https://opensource.org/wp-admin/admin-ajax.php?action=locations_search","firstDay":"1","locale":"en","dateFormat":"yy-mm-dd","ui_css":"https://opensource.org/wp-content/plugins/events-manager/includes/css/jquery-ui/build.min.css","show24hours":"0","is_ssl":"1","autocomplete_limit":"10","calendar":{"breakpoints":{"small":560,"medium":908,"large":false},"month_format":"M Y"},"phone":"","datepicker":{"format":"Y-m-d"},"search":{"breakpoints":{"small":650,"medium":850,"full":false}},"url":"https://opensource.org/wp-content/plugins/events-manager","assets":{"input.em-uploader":{"js":{"em-uploader":{"url":"https://opensource.org/wp-content/plugins/events-manager/includes/js/em-uploader.js?v=7.2.3.1","event":"em_uploader_ready"}}},".em-event-editor":{"js":{"event-editor":{"url":"https://opensource.org/wp-content/plugins/events-manager/includes/js/events-manager-event-editor.js?v=7.2.3.1","event":"em_event_editor_ready"}},"css":{"event-editor":"https://opensource.org/wp-content/plugins/events-manager/includes/css/events-manager-event-editor.min.css?v=7.2.3.1"}},".em-recurrence-sets, .em-timezone":{"js":{"luxon":{"url":"luxon/luxon.js?v=7.2.3.1","event":"em_luxon_ready"}}},".em-booking-form, #em-booking-form, .em-booking-recurring, .em-event-booking-form":{"js":{"em-bookings":{"url":"https://opensource.org/wp-content/plugins/events-manager/includes/js/bookingsform.js?v=7.2.3.1","event":"em_booking_form_js_loaded"},"em-coupons":{"url":"https://opensource.org/wp-content/plugins/events-manager-pro/add-ons/coupons/coupons.js?v=3.7.2.3","requires":"em-bookings"}},"css":{"em-coupons":"https://opensource.org/wp-content/plugins/events-manager-pro/add-ons/coupons/coupons.min.css?v=3.7.2.3"}},"#em-opt-archetypes":{"js":{"archetypes":"https://opensource.org/wp-content/plugins/events-manager/includes/js/admin-archetype-editor.js?v=7.2.3.1","archetypes_ms":"https://opensource.org/wp-content/plugins/events-manager/includes/js/admin-archetypes.js?v=7.2.3.1","qs":"qs/qs.js?v=7.2.3.1"}},".em-cart-coupons-form":{"js":{"em-coupons-cart":{"url":"https://opensource.org/wp-content/plugins/events-manager-pro/add-ons/coupons/coupons-cart.js?v=3.7.2.3","event":"em_timepicker_ready"}},"css":{"em-coupons":"https://opensource.org/wp-content/plugins/events-manager-pro/add-ons/coupons/coupons.min.css?v=3.7.2.3"}}},"cached":"1","bookingInProgress":"Please wait while the booking is being submitted.","tickets_save":"Save Ticket","bookingajaxurl":"https://opensource.org/wp-admin/admin-ajax.php","bookings_export_save":"Export Bookings","bookings_settings_save":"Save Settings","booking_delete":"Are you sure you want to delete?","booking_offset":"30","bookings":{"submit_button":{"text":{"default":"Submit Booking","free":"Submit Booking","payment":"Submit Booking - %s","processing":"Processing ..."}},"update_listener":""},"bb_full":"Sold Out","bb_book":"Book Now","bb_booking":"Booking...","bb_booked":"Booking Submitted","bb_error":"Booking Error. Try again?","bb_cancel":"Cancel","bb_canceling":"Canceling...","bb_cancelled":"Cancelled","bb_cancel_error":"Cancellation Error. Try again?","txt_search":"Search","txt_searching":"Searching...","txt_loading":"Loading...","cache":"1","api_nonce":"1ff44db401","attendance_api_url":"https://opensource.org/wp-json/events-manager/v1/attendance"};
|
|
322
322
|
//# sourceURL=events-manager-js-extra
|
|
323
323
|
/* ]]> */
|
|
324
324
|
</script>
|
|
325
325
|
<script type="text/javascript" src="https://opensource.org/wp-content/plugins/events-manager/includes/js/events-manager.js?ver=7.2.3.1" id="events-manager-js"></script>
|
|
326
326
|
<script type="text/javascript" src="https://opensource.org/wp-content/plugins/events-manager-pro/includes/js/events-manager-pro.js?ver=3.7.2.3" id="events-manager-pro-js"></script>
|
|
327
|
-
<script type="text/javascript" defer data-domain='opensource.org' data-api='https://opensource.org/wp-json/fcdf21/v1/da74/d08e74b0' data-cfasync='false' src="//opensource.org/wp-content/uploads/4931f7089c/801c1c58.js?ver=
|
|
327
|
+
<script type="text/javascript" defer data-domain='opensource.org' data-api='https://opensource.org/wp-json/fcdf21/v1/da74/d08e74b0' data-cfasync='false' src="//opensource.org/wp-content/uploads/4931f7089c/801c1c58.js?ver=1768156928" id="plausible-analytics-js"></script>
|
|
328
328
|
<script type="text/javascript" id="plausible-analytics-js-after">
|
|
329
329
|
/* <![CDATA[ */
|
|
330
330
|
window.plausible = window.plausible || function() { (window.plausible.q = window.plausible.q || []).push(arguments) }
|
|
@@ -1445,10 +1445,10 @@ var wpdc = {"commentsURL":"https://opensource.org/wp-json/wp-discourse/v1/discou
|
|
|
1445
1445
|
/* ]]> */
|
|
1446
1446
|
</script>
|
|
1447
1447
|
<script type="text/javascript" src="https://opensource.org/wp-content/plugins/wp-discourse/lib/../js/load-comments.js?ver=1761590360" id="load_comments_js-js"></script>
|
|
1448
|
-
<script type="text/javascript" src="https://opensource.org/wp-content/plugins/jetpack/jetpack_vendor/automattic/jetpack-assets/build/i18n-loader.js?minify=true&ver=517685b2423141b3a0a3" id="wp-jp-i18n-loader-js"></script>
|
|
1448
|
+
<script type="text/javascript" src="https://opensource.org/wp-content/plugins/jetpack-boost/jetpack_vendor/automattic/jetpack-assets/build/i18n-loader.js?minify=true&ver=517685b2423141b3a0a3" id="wp-jp-i18n-loader-js"></script>
|
|
1449
1449
|
<script type="text/javascript" id="wp-jp-i18n-loader-js-after">
|
|
1450
1450
|
/* <![CDATA[ */
|
|
1451
|
-
wp.jpI18nLoader.state = {"baseUrl":"https://opensource.org/wp-content/languages/","locale":"en_US","domainMap":{"jetpack-admin-ui":"plugins/jetpack-boost","jetpack-assets":"plugins/jetpack","jetpack-boost-core":"plugins/jetpack-boost","jetpack-boost-speed-score":"plugins/jetpack-boost","jetpack-config":"plugins/jetpack-boost","jetpack-connection":"plugins/jetpack","jetpack-explat":"plugins/jetpack","jetpack-image-cdn":"plugins/jetpack-boost","jetpack-ip":"plugins/jetpack-boost","jetpack-jitm":"plugins/jetpack","jetpack-licensing":"plugins/jetpack","jetpack-my-jetpack":"plugins/jetpack","jetpack-password-checker":"plugins/jetpack-boost","jetpack-plugin-deactivation":"plugins/jetpack-boost","jetpack-plugins-installer":"plugins/jetpack-boost","jetpack-protect-models":"plugins/jetpack-boost","jetpack-protect-status":"plugins/jetpack-boost","jetpack-schema":"plugins/jetpack-boost","jetpack-sync":"plugins/jetpack","jetpack-wp-js-data-sync":"plugins/jetpack-boost","jetpack-account-protection":"plugins/jetpack","jetpack-backup-pkg":"plugins/jetpack","jetpack-blaze":"plugins/jetpack","jetpack-block-delimiter":"plugins/jetpack","jetpack-classic-theme-helper":"plugins/jetpack","jetpack-compat":"plugins/jetpack","jetpack-external-connections":"plugins/jetpack","jetpack-external-media":"plugins/jetpack","jetpack-forms":"plugins/jetpack","jetpack-import":"plugins/jetpack","jetpack-jwt":"plugins/jetpack","jetpack-masterbar":"plugins/jetpack","jetpack-newsletter":"plugins/jetpack","jetpack-paypal-payments":"plugins/jetpack","jetpack-post-list":"plugins/jetpack","jetpack-publicize-pkg":"plugins/jetpack","jetpack-search-pkg":"plugins/jetpack","jetpack-stats":"plugins/jetpack","jetpack-stats-admin":"plugins/jetpack","jetpack-subscribers-dashboard":"plugins/jetpack","jetpack-videopress-pkg":"plugins/jetpack","jetpack-waf":"plugins/jetpack","woocommerce-analytics":"plugins/jetpack"},"domainPaths":{"jetpack-admin-ui":"jetpack_vendor/automattic/jetpack-admin-ui/","jetpack-assets":"jetpack_vendor/automattic/jetpack-assets/","jetpack-boost-core":"jetpack_vendor/automattic/jetpack-boost-core/","jetpack-boost-speed-score":"jetpack_vendor/automattic/jetpack-boost-speed-score/","jetpack-config":"jetpack_vendor/automattic/jetpack-config/","jetpack-connection":"jetpack_vendor/automattic/jetpack-connection/","jetpack-explat":"jetpack_vendor/automattic/jetpack-explat/","jetpack-image-cdn":"jetpack_vendor/automattic/jetpack-image-cdn/","jetpack-ip":"jetpack_vendor/automattic/jetpack-ip/","jetpack-jitm":"jetpack_vendor/automattic/jetpack-jitm/","jetpack-licensing":"jetpack_vendor/automattic/jetpack-licensing/","jetpack-my-jetpack":"jetpack_vendor/automattic/jetpack-my-jetpack/","jetpack-password-checker":"jetpack_vendor/automattic/jetpack-password-checker/","jetpack-plugin-deactivation":"jetpack_vendor/automattic/jetpack-plugin-deactivation/","jetpack-plugins-installer":"jetpack_vendor/automattic/jetpack-plugins-installer/","jetpack-protect-models":"jetpack_vendor/automattic/jetpack-protect-models/","jetpack-protect-status":"jetpack_vendor/automattic/jetpack-protect-status/","jetpack-schema":"jetpack_vendor/automattic/jetpack-schema/","jetpack-sync":"jetpack_vendor/automattic/jetpack-sync/","jetpack-wp-js-data-sync":"jetpack_vendor/automattic/jetpack-wp-js-data-sync/","jetpack-account-protection":"jetpack_vendor/automattic/jetpack-account-protection/","jetpack-backup-pkg":"jetpack_vendor/automattic/jetpack-backup/","jetpack-blaze":"jetpack_vendor/automattic/jetpack-blaze/","jetpack-block-delimiter":"jetpack_vendor/automattic/block-delimiter/","jetpack-classic-theme-helper":"jetpack_vendor/automattic/jetpack-classic-theme-helper/","jetpack-compat":"jetpack_vendor/automattic/jetpack-compat/","jetpack-external-connections":"jetpack_vendor/automattic/jetpack-external-connections/","jetpack-external-media":"jetpack_vendor/automattic/jetpack-external-media/","jetpack-forms":"jetpack_vendor/automattic/jetpack-forms/","jetpack-import":"jetpack_vendor/automattic/jetpack-import/","jetpack-jwt":"jetpack_vendor/automattic/jetpack-jwt/","jetpack-masterbar":"jetpack_vendor/automattic/jetpack-masterbar/","jetpack-newsletter":"jetpack_vendor/automattic/jetpack-newsletter/","jetpack-paypal-payments":"jetpack_vendor/automattic/jetpack-paypal-payments/","jetpack-post-list":"jetpack_vendor/automattic/jetpack-post-list/","jetpack-publicize-pkg":"jetpack_vendor/automattic/jetpack-publicize/","jetpack-search-pkg":"jetpack_vendor/automattic/jetpack-search/","jetpack-stats":"jetpack_vendor/automattic/jetpack-stats/","jetpack-stats-admin":"jetpack_vendor/automattic/jetpack-stats-admin/","jetpack-subscribers-dashboard":"jetpack_vendor/automattic/jetpack-subscribers-dashboard/","jetpack-videopress-pkg":"jetpack_vendor/automattic/jetpack-videopress/","jetpack-waf":"jetpack_vendor/automattic/jetpack-waf/","woocommerce-analytics":"jetpack_vendor/automattic/woocommerce-analytics/"}};
|
|
1451
|
+
wp.jpI18nLoader.state = {"baseUrl":"https://opensource.org/wp-content/languages/","locale":"en_US","domainMap":{"jetpack-admin-ui":"plugins/jetpack-boost","jetpack-assets":"plugins/jetpack-boost","jetpack-boost-core":"plugins/jetpack-boost","jetpack-boost-speed-score":"plugins/jetpack-boost","jetpack-config":"plugins/jetpack-boost","jetpack-connection":"plugins/jetpack-boost","jetpack-explat":"plugins/jetpack-boost","jetpack-image-cdn":"plugins/jetpack-boost","jetpack-ip":"plugins/jetpack-boost","jetpack-jitm":"plugins/jetpack-boost","jetpack-licensing":"plugins/jetpack-boost","jetpack-my-jetpack":"plugins/jetpack-boost","jetpack-password-checker":"plugins/jetpack-boost","jetpack-plugin-deactivation":"plugins/jetpack-boost","jetpack-plugins-installer":"plugins/jetpack-boost","jetpack-protect-models":"plugins/jetpack-boost","jetpack-protect-status":"plugins/jetpack-boost","jetpack-schema":"plugins/jetpack-boost","jetpack-sync":"plugins/jetpack-boost","jetpack-wp-js-data-sync":"plugins/jetpack-boost","jetpack-account-protection":"plugins/jetpack","jetpack-backup-pkg":"plugins/jetpack","jetpack-blaze":"plugins/jetpack","jetpack-block-delimiter":"plugins/jetpack","jetpack-classic-theme-helper":"plugins/jetpack","jetpack-compat":"plugins/jetpack","jetpack-external-connections":"plugins/jetpack","jetpack-external-media":"plugins/jetpack","jetpack-forms":"plugins/jetpack","jetpack-import":"plugins/jetpack","jetpack-jwt":"plugins/jetpack","jetpack-masterbar":"plugins/jetpack","jetpack-newsletter":"plugins/jetpack","jetpack-paypal-payments":"plugins/jetpack","jetpack-post-list":"plugins/jetpack","jetpack-publicize-pkg":"plugins/jetpack","jetpack-search-pkg":"plugins/jetpack","jetpack-stats":"plugins/jetpack","jetpack-stats-admin":"plugins/jetpack","jetpack-subscribers-dashboard":"plugins/jetpack","jetpack-videopress-pkg":"plugins/jetpack","jetpack-waf":"plugins/jetpack","woocommerce-analytics":"plugins/jetpack"},"domainPaths":{"jetpack-admin-ui":"jetpack_vendor/automattic/jetpack-admin-ui/","jetpack-assets":"jetpack_vendor/automattic/jetpack-assets/","jetpack-boost-core":"jetpack_vendor/automattic/jetpack-boost-core/","jetpack-boost-speed-score":"jetpack_vendor/automattic/jetpack-boost-speed-score/","jetpack-config":"jetpack_vendor/automattic/jetpack-config/","jetpack-connection":"jetpack_vendor/automattic/jetpack-connection/","jetpack-explat":"jetpack_vendor/automattic/jetpack-explat/","jetpack-image-cdn":"jetpack_vendor/automattic/jetpack-image-cdn/","jetpack-ip":"jetpack_vendor/automattic/jetpack-ip/","jetpack-jitm":"jetpack_vendor/automattic/jetpack-jitm/","jetpack-licensing":"jetpack_vendor/automattic/jetpack-licensing/","jetpack-my-jetpack":"jetpack_vendor/automattic/jetpack-my-jetpack/","jetpack-password-checker":"jetpack_vendor/automattic/jetpack-password-checker/","jetpack-plugin-deactivation":"jetpack_vendor/automattic/jetpack-plugin-deactivation/","jetpack-plugins-installer":"jetpack_vendor/automattic/jetpack-plugins-installer/","jetpack-protect-models":"jetpack_vendor/automattic/jetpack-protect-models/","jetpack-protect-status":"jetpack_vendor/automattic/jetpack-protect-status/","jetpack-schema":"jetpack_vendor/automattic/jetpack-schema/","jetpack-sync":"jetpack_vendor/automattic/jetpack-sync/","jetpack-wp-js-data-sync":"jetpack_vendor/automattic/jetpack-wp-js-data-sync/","jetpack-account-protection":"jetpack_vendor/automattic/jetpack-account-protection/","jetpack-backup-pkg":"jetpack_vendor/automattic/jetpack-backup/","jetpack-blaze":"jetpack_vendor/automattic/jetpack-blaze/","jetpack-block-delimiter":"jetpack_vendor/automattic/block-delimiter/","jetpack-classic-theme-helper":"jetpack_vendor/automattic/jetpack-classic-theme-helper/","jetpack-compat":"jetpack_vendor/automattic/jetpack-compat/","jetpack-external-connections":"jetpack_vendor/automattic/jetpack-external-connections/","jetpack-external-media":"jetpack_vendor/automattic/jetpack-external-media/","jetpack-forms":"jetpack_vendor/automattic/jetpack-forms/","jetpack-import":"jetpack_vendor/automattic/jetpack-import/","jetpack-jwt":"jetpack_vendor/automattic/jetpack-jwt/","jetpack-masterbar":"jetpack_vendor/automattic/jetpack-masterbar/","jetpack-newsletter":"jetpack_vendor/automattic/jetpack-newsletter/","jetpack-paypal-payments":"jetpack_vendor/automattic/jetpack-paypal-payments/","jetpack-post-list":"jetpack_vendor/automattic/jetpack-post-list/","jetpack-publicize-pkg":"jetpack_vendor/automattic/jetpack-publicize/","jetpack-search-pkg":"jetpack_vendor/automattic/jetpack-search/","jetpack-stats":"jetpack_vendor/automattic/jetpack-stats/","jetpack-stats-admin":"jetpack_vendor/automattic/jetpack-stats-admin/","jetpack-subscribers-dashboard":"jetpack_vendor/automattic/jetpack-subscribers-dashboard/","jetpack-videopress-pkg":"jetpack_vendor/automattic/jetpack-videopress/","jetpack-waf":"jetpack_vendor/automattic/jetpack-waf/","woocommerce-analytics":"jetpack_vendor/automattic/woocommerce-analytics/"}};
|
|
1452
1452
|
//# sourceURL=wp-jp-i18n-loader-js-after
|
|
1453
1453
|
/* ]]> */
|
|
1454
1454
|
</script>
|
|
@@ -1456,12 +1456,12 @@ wp.jpI18nLoader.state = {"baseUrl":"https://opensource.org/wp-content/languages/
|
|
|
1456
1456
|
<script type="text/javascript" src="https://opensource.org/wp-content/plugins/gutenberg/build/scripts/url/index.min.js?ver=1765975718208" id="wp-url-js"></script>
|
|
1457
1457
|
<script type="text/javascript" id="jetpack-instant-search-js-before">
|
|
1458
1458
|
/* <![CDATA[ */
|
|
1459
|
-
var JetpackInstantSearchOptions={"overlayOptions":{"colorTheme":"light","enableInfScroll":true,"enableFilteringOpensOverlay":true,"enablePostDate":true,"enableSort":true,"highlightColor":"#fdd7b9","overlayTrigger":"submit","resultFormat":"expanded","showPoweredBy":true,"defaultSort":"relevance","excludedPostTypes":["attachment"]},"homeUrl":"https://opensource.org","locale":"en-US","postsPerPage":12,"siteId":210318891,"postTypes":{"post":{"singular_name":"Post","name":"Posts"},"page":{"singular_name":"Page","name":"Pages"},"attachment":{"singular_name":"Media","name":"Media"},"supporter":{"singular_name":"Supporter","name":"Supporters"},"board-member":{"singular_name":"Board Member","name":"Board Members"},"license":{"singular_name":"License","name":"Licenses"},"meeting-minutes":{"singular_name":"Meeting Minutes","name":"Meeting Minutes"},"press-mentions":{"singular_name":"Press mentions","name":"Press mentions"},"podcast":{"singular_name":"Episode","name":"Episode"}},"webpackPublicPath":"https://opensource.org/wp-content/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/build/instant-search/","isPhotonEnabled":true,"isFreePlan":false,"apiRoot":"https://opensource.org/wp-json/","apiNonce":"
|
|
1459
|
+
var JetpackInstantSearchOptions={"overlayOptions":{"colorTheme":"light","enableInfScroll":true,"enableFilteringOpensOverlay":true,"enablePostDate":true,"enableSort":true,"highlightColor":"#fdd7b9","overlayTrigger":"submit","resultFormat":"expanded","showPoweredBy":true,"defaultSort":"relevance","excludedPostTypes":["attachment"]},"homeUrl":"https://opensource.org","locale":"en-US","postsPerPage":12,"siteId":210318891,"postTypes":{"post":{"singular_name":"Post","name":"Posts"},"page":{"singular_name":"Page","name":"Pages"},"attachment":{"singular_name":"Media","name":"Media"},"supporter":{"singular_name":"Supporter","name":"Supporters"},"board-member":{"singular_name":"Board Member","name":"Board Members"},"license":{"singular_name":"License","name":"Licenses"},"meeting-minutes":{"singular_name":"Meeting Minutes","name":"Meeting Minutes"},"press-mentions":{"singular_name":"Press mentions","name":"Press mentions"},"podcast":{"singular_name":"Episode","name":"Episode"}},"webpackPublicPath":"https://opensource.org/wp-content/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/build/instant-search/","isPhotonEnabled":true,"isFreePlan":false,"apiRoot":"https://opensource.org/wp-json/","apiNonce":"1ff44db401","isPrivateSite":false,"isWpcom":false,"hasOverlayWidgets":true,"widgets":[{"filters":[{"name":"Post Types","type":"post_type","count":6,"widget_id":"jetpack-search-filters-4","filter_id":"post_type_0"},{"name":"Categories","type":"taxonomy","taxonomy":"category","count":5,"widget_id":"jetpack-search-filters-4","filter_id":"taxonomy_1"},{"name":"Tags","type":"taxonomy","taxonomy":"post_tag","count":5,"widget_id":"jetpack-search-filters-4","filter_id":"taxonomy_2"},{"name":"Year","type":"date_histogram","count":5,"field":"post_date","interval":"year","widget_id":"jetpack-search-filters-4","filter_id":"date_histogram_3"}],"widget_id":"jetpack-search-filters-4"}],"widgetsOutsideOverlay":[],"hasNonSearchWidgets":false,"preventTrackingCookiesReset":false};
|
|
1460
1460
|
//# sourceURL=jetpack-instant-search-js-before
|
|
1461
1461
|
/* ]]> */
|
|
1462
1462
|
</script>
|
|
1463
1463
|
<script type="text/javascript" src="https://opensource.org/wp-content/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/build/instant-search/jp-search.js?minify=false&ver=62e24c826fcd11ccbe81" id="jetpack-instant-search-js"></script>
|
|
1464
|
-
<script data-service="jetpack-statistics" data-category="statistics" type="text/plain" data-cmplz-src="//stats.wp.com/w.js?ver=
|
|
1464
|
+
<script data-service="jetpack-statistics" data-category="statistics" type="text/plain" data-cmplz-src="//stats.wp.com/w.js?ver=202603" id="jp-tracks-js"></script>
|
|
1465
1465
|
<script type="text/javascript" id="osi-theme-scripts-js-before">
|
|
1466
1466
|
/* <![CDATA[ */
|
|
1467
1467
|
const OSI_LICENSE_DB = {"ajaxURL":"https:\/\/opensource.org\/wp-admin\/admin-ajax.php","action":"osi_license_db"}
|
|
@@ -1473,15 +1473,15 @@ const OSI_LICENSE_DB = {"ajaxURL":"https:\/\/opensource.org\/wp-admin\/admin-aja
|
|
|
1473
1473
|
<script type="text/javascript" id="jetpack-stats-js-before">
|
|
1474
1474
|
/* <![CDATA[ */
|
|
1475
1475
|
_stq = window._stq || [];
|
|
1476
|
-
_stq.push([ "view", {"v":"ext","blog":"210318891","post":"395","tz":"0","srv":"opensource.org","hp":"atomic","ac":"3","amp":"0","j":"1:15.4
|
|
1476
|
+
_stq.push([ "view", {"v":"ext","blog":"210318891","post":"395","tz":"0","srv":"opensource.org","hp":"atomic","ac":"3","amp":"0","j":"1:15.4"} ]);
|
|
1477
1477
|
_stq.push([ "clickTrackerInit", "210318891", "395" ]);
|
|
1478
1478
|
//# sourceURL=jetpack-stats-js-before
|
|
1479
1479
|
/* ]]> */
|
|
1480
1480
|
</script>
|
|
1481
|
-
<script data-service="jetpack-statistics" data-category="statistics" type="text/plain" data-cmplz-src="https://stats.wp.com/e-
|
|
1481
|
+
<script data-service="jetpack-statistics" data-category="statistics" type="text/plain" data-cmplz-src="https://stats.wp.com/e-202603.js" id="jetpack-stats-js" defer="defer" data-wp-strategy="defer"></script>
|
|
1482
1482
|
<script type="text/javascript" id="cmplz-cookiebanner-js-extra">
|
|
1483
1483
|
/* <![CDATA[ */
|
|
1484
|
-
var complianz = {"prefix":"cmplz_","user_banner_id":"1","set_cookies":[],"block_ajax_content":"","banner_version":"
|
|
1484
|
+
var complianz = {"prefix":"cmplz_","user_banner_id":"1","set_cookies":[],"block_ajax_content":"","banner_version":"129","version":"7.4.4.2","store_consent":"","do_not_track_enabled":"1","consenttype":"optin","region":"eu","geoip":"","dismiss_timeout":"","disable_cookiebanner":"1","soft_cookiewall":"","dismiss_on_scroll":"","cookie_expiry":"365","url":"https://opensource.org/wp-json/complianz/v1/","locale":"lang=en&locale=en_US","set_cookies_on_root":"","cookie_domain":"","current_policy_id":"22","cookie_path":"/","categories":{"statistics":"statistics","marketing":"marketing"},"tcf_active":"","placeholdertext":"Click to accept {category} cookies and enable this content","css_file":"https://opensource.org/wp-content/uploads/complianz/css/banner-{banner_id}-{type}.css?v=129","page_links":{"eu":{"cookie-statement":{"title":"","url":"https://opensource.org/license/gpl-3-0"}}},"tm_categories":"","forceEnableStats":"","preview":"","clean_cookies":"","aria_label":"Click to accept {category} cookies and enable this content"};
|
|
1485
1485
|
//# sourceURL=cmplz-cookiebanner-js-extra
|
|
1486
1486
|
/* ]]> */
|
|
1487
1487
|
</script>
|
|
@@ -1497,11 +1497,11 @@ const a=JSON.parse(document.getElementById("wp-emoji-settings").textContent),o=(
|
|
|
1497
1497
|
/* ]]> */
|
|
1498
1498
|
</script>
|
|
1499
1499
|
|
|
1500
|
-
<script>(function(){function c(){var b=a.contentDocument||a.contentWindow.document;if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'
|
|
1500
|
+
<script>(function(){function c(){var b=a.contentDocument||a.contentWindow.document;if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'9bca0543899f6b58',t:'MTc2ODE5MzI5NQ=='};var a=document.createElement('script');a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script></body>
|
|
1501
1501
|
</html>
|
|
1502
1502
|
<!--
|
|
1503
|
-
generated
|
|
1504
|
-
generated in 0.
|
|
1503
|
+
generated 126 seconds ago
|
|
1504
|
+
generated in 0.827 seconds
|
|
1505
1505
|
served from batcache in 0.004 seconds
|
|
1506
|
-
expires in
|
|
1506
|
+
expires in 174 seconds
|
|
1507
1507
|
-->
|