forked from zeek/spicy
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCHANGES
4930 lines (3000 loc) · 173 KB
/
CHANGES
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1.8.0-dev.25 | 2023-03-08 16:27:27 +0100
* Fix typo in types documentation (tbfhg)
1.8.0-dev.23 | 2023-03-08 11:38:16 +0100
* Only run lint CI task from scheduled builds or PRs. (Benjamin Bannier, Corelight)
1.8.0-dev.21 | 2023-03-07 09:44:38 +0100
* Avoid expensive checked iterator for internal `Bytes` iteration. (Benjamin Bannier, Corelight)
We previously would go through a checked iterator to iterate a `Bytes`
instance. Since none of the iterators were user-provided this was always
safe, but incured the performance overhead for checking.
With this patch we iterate the underlying bytes directly.
* GH-1390: Initialize `Bytes` internal control block for all constructors. (Benjamin Bannier, Corelight)
`Bytes` inherits constructors from its base class. We previously would
not initialize the internal control block for these constructors so some
operations involving iterators on such `Bytes` instances would have
failed, even thought the controlled object was still valid.
With this patch we always set up the control block, no matter which
constructor is used.
Closes #1390.
1.8.0-dev.18 | 2023-03-07 09:43:59 +0100
* Do not force locale on users of libhilti. (Benjamin Bannier, Corelight)
Setting a locale from a library can interfere negatively with the rest
of the application. We previously would set a locale inside
`hilti::rt::init`, but we probably do not need it at all.
1.8.0-dev.16 | 2023-03-06 16:24:55 +0100
* Cache HILTI C++ compilations with ccache in CI. (Benjamin Bannier, Corelight)
1.8.0-dev.14 | 2023-03-06 16:24:20 +0100
* GH-1386: Prevent internal error when passed invalid context. (Benjamin Bannier, Corelight)
We previously would trigger an internal error when encountering
`self.context()` in a unit which declared a `%context` to something
which was not a type. With this patch we now reject such calls.
We picked a simplified implementation strategy: when querying a `Unit`'s
`contextType` we still return an optional type to handle both units
without context as well as units where %context does not point to a
type; if a context is present but does not refer to a type we return an
empty result. With that we potentially trigger two errors, from
validating that `%context` refers to a type, and from validating that
the unit had a `%context` when using `self.context()`, i.e., if the
`%context` is invalid we continue parsing as if the unit had no
`%context` at all. The alternative would have been to return e.g., a
`Result<optional_ref<Type>>` from `contextType` to capture both the
unset as well as invalid case and move some of the validation into
`contextType` itself; this still would have led to a lot of manual
unwrapping in users.
Closes #1386.
1.8.0-dev.12 | 2023-02-24 17:13:42 +0100
* Fix potential use-after-move bug. (Benjamin Bannier, Corelight)
1.8.0-dev.10 | 2023-02-22 15:42:04 +0100
* Switch `SafeInt` to current upstream. (Robin Sommer, Corelight)
1.8.0-dev.8 | 2023-02-22 11:16:08 +0100
* Set reupload_on_changes for ccache caches. (Arne Welzel, Corelight)
* Build centos stream again for PRs, disable clang-12 debug. (Benjamin Bannier, Corelight)
1.8.0-dev.5 | 2023-02-20 14:31:21 +0100
* Fix sign-unsigned comparison. (Benjamin Bannier, Corelight)
* GH-169: Build debian-11 instead of centos stream 8 in CI. (Benjamin Bannier, Corelight)
* Update docs for removal of fedora-35, addition of fedora-36. [skip CI] (Benjamin Bannier, Corelight)
* Add placeholder section for 1.8 to NEWS. (Benjamin Bannier, Corelight)
1.7.0 | 2023-02-13 17:41:31 +0100
* Release 1.7.0.
1.7.0-dev.124 | 2023-02-13 17:41:08 +0100
* Revert "Make all CI tasks greedy." (Benjamin Bannier, Corelight)
This reverts commit 3176c2cadc71aaf4c0c3dd28d37c1d465323da8c.
* Revert "Decrease excessive RAM on some CI platforms." (Benjamin Bannier, Corelight)
This reverts commit 6ce665b9f3dc7f3630167e1bdf3f752ce3647dcf.
1.7.0-dev.121 | 2023-02-13 14:47:21 +0100
* GH-1310: Fix ASAN false positive with GCC. (Robin Sommer, Corelight)
* Skip clang-specific ASAN flags with other compilers. (Robin Sommer, Corelight)
* Don't instantiate a debug logger if we aren't going to debug log. (Robin Sommer, Corelight)
* Simplify runtime library's extract methods. (Robin Sommer, Corelight)
* Shortcut some stream offset computations. (Robin Sommer, Corelight)
* GH-1345: Apply alternative fix for #1345. (Robin Sommer, Corelight)
1.7.0-dev.112 | 2023-02-09 11:03:09 +0100
* Make `printParserState` cheaper to call if debug logging is disabled. (Benjamin Bannier, Corelight)
1.7.0-dev.110 | 2023-02-03 15:57:39 +0100
* https://github.com/zeek/spicy-plugin/issues/134: Search
`HILTI_CXX_INCLUDE_DIRS` paths before default include paths.
(Robin Sommer, Corelight)
* Support Zeek-style documentation strings in Spicy source code. (Robin Sommer, Corelight)
This adds support for extracting and retaining Zeek-style
documentation strings (`##`, `##!`) inside Spicy source code to any
top-level AST nodes where it's appropriate: if they are prefixed with
a block of such comments, that information is retained along with the
node for later access.
The code printer (`-p`) learns to emit doc strings coming with the
nodes it's printing out.
* Bump Zeek docs. (Benjamin Bannier, Corelight)
1.7.0-dev.105 | 2023-02-01 11:17:25 +0100
* Documentation updates. (Robin Sommer, Corelight)
- Documenting the new type `export` feature for Zeek.
- Update Zeek docs for JIT removal and `accept_input`/`decline_input`.
1.7.0-dev.102 | 2023-01-31 14:02:45 +0100
* GH-1367: Use unique filename for all object files generated during JIT. (Benjamin Bannier, Corelight)
* Bump Zeek docs. (Benjamin Bannier, Corelight)
* Point doc repo links to latest release instead of `main`. (Benjamin Bannier, Corelight)
* Fix installation links for macos platforms. (Benjamin Bannier, Corelight)
* Bump latest release in docs. (Benjamin Bannier, Corelight)
1.7.0-dev.95 | 2023-01-27 12:00:41 +0100
* Streamline runtime exception hierarchy. (Robin Sommer, Corelight)
We were inconsistent in the structure of exceptions that could
happen during runtime, making it hard for host applications for
consistently handle trouble. We tweak this, as follows:
- We now only have two general subcategories of exceptions under the
top-level `hilti::rt::Exception`:
- `RuntimeError`: non-fatal errors that mean a host
applications cannot complete the current line of processing,
but can otherwise continue. This is the main exception that
host applications should catch, and then proceed
appropriately.
- `UsageError`: fatal errors that indicate something about
using the runtime environment was fundamentally wrong, and a
host application should abort.
- Almost all other exceptions are now derived from `RuntimeError`,
including Spicy's `ParseError` and `RecoverableFailure`, so that
they can treated consistently.
1.7.0-dev.93 | 2023-01-27 11:57:58 +0100
* Search user module paths before system paths. (Robin Sommer, Corelight)
With, e.g., `spicyz -L /x/y/z`, we used to append the given module
path to the internal system paths, so that it was searched last. This
change turns around the priority to search `/x/y/x` first, before the
internal ones. That seems both more useful and more intuitive.
* Provide ability for host applications to initiate runtime's
module-pre-init phase manually. (Robin Sommer, Corelight)
1.7.0-dev.89 | 2023-01-27 11:44:31 +0100
* Add DPD-style `spicy::accept_input()` and `spicy::decline_input()`. (Robin Sommer, Corelight)
This generalizes the accepting/decline input from being a Zeek thing to
being part of Spicy. Any Spicy grammar can call these functions as to
tell its host application if it recognizes the input format. The host
application can (but doesn't have to) install callbacks to receive
that information and react appropriately. For example, the Zeek
plugin will just forward it to Zeek's standard DPD hooks.
For testing, `spicy-driver` gets a new option `--require-accept`
that lets it exit with success only if `spicy::accept()` has
been called, and `spicy::decline_input()` hasn't.
Note: The naming of the two functions is avoid conflicts with the
existing notion of synchronization's confirm/reject.
* Add a global configuration object to the Spicy runtime. (Robin Sommer, Corelight)
We didn't have a mechanism yet for a host application to configure the
runtime library's behavior. This follows what we do on the HILTI-side
to provide that capability.
1.7.0-dev.86 | 2023-01-27 11:35:35 +0100
* Add driver option to output full set of generated C++ files. (Robin Sommer, Corelight)
`-x <prefix>` now writes out all generated C++ code as
`<prefix>_*.cc`, also setting the internal C++ namespace prefix to
`<prefix>`.
* Add test for sink's paying attention to linker scopes with static C++ code. (Robin Sommer, Corelight)
* Make test helper scripts `cxx-*` usable with Spicy code as well. (Robin Sommer, Corelight)
* Provide new HILTI keyword `$scope` to access linker scope. (Robin Sommer, Corelight)
* Prefix the linker scope with the internal CXX namespace. (Robin Sommer, Corelight)
* Fix a couple of places hardcoding the internal C++ namespace prefix. (Robin Sommer, Corelight)
* Prefix the linker symbols for versioning with C++ namespace. (Robin Sommer, Corelight)
1.7.0-dev.78 | 2023-01-27 11:16:01 +0100
* GH-1123: Support arbitrary expression as argument to type
constructors, such as `interval(...)`. (Robin Sommer, Corelight)
So far we used constructor expressions like `interval(...)` to create
*constants* of the given type, and for that we required that the
argument was a single atomic value. The result was that these
constructor expressions were really more like literals for the
corresponding types than "normal" expressions. While that's useful
internally, it's confusing to the user. This commits changes that
to support arbitrary expressions as arguments.
To make this change without loosing a way to create actual constants
(which we need at some places), we implement this in two stages: the
parser initially turns such `interval(...)` expressions into call
operators[1] that the types now define for each desired constructor. We
then extend the normalizer with a new constants folding pass that
turns the call expressions into constants if possible.
The new constant folder remains limited to the cases we need for
this use case, but we'll be able to expand that later to more
general folding.
* Fix bug in cast from `real` to `interval`. (Robin Sommer, Corelight)
* Add anchors to FAQ items in docs [skip CI]. (Benjamin Bannier, Corelight)
1.7.0-dev.53 | 2023-01-25 09:39:02 +0100
* Add stringification to UnitContext. (Benjamin Bannier, Corelight)
1.7.0-dev.51 | 2023-01-25 09:36:56 +0100
* Remove potential race during JIT when using `HILTI_CXX_COMPILER_LAUNCHER`. (Benjamin Bannier, Corelight)
1.7.0-dev.49 | 2023-01-20 10:41:46 +0100
* GH-1349: Fix incremental regexp matching for potentially empty results. (Robin Sommer, Corelight)
When feeding data incrementally into the regexp matcher, we could run
into an assert trying to ensure that the end of a match wasn't in the
previous chunk already. Turns out, however, that *is* possible with
empty matches that are determined only later (and maybe it's possible
in other cases, too). To fix this, we need to account for potentially
backtracking into data from a previous round. This could be a bit
surprising to callers of the `advance()` method, but should
work as long as they aren't trimming the stream in between (which in
our use cases shouldn't be the case).
Closes #1349.
* Install full nlohmann JSON header as well. (Benjamin Bannier, Corelight)
We previously would only install the nlohmann header with forward
declaration while in `hilti/rt/json.h` we include the full header. With
that it was impossible to include this header in user code.
This patch makes sure we install the full header as well.
1.7.0-dev.45 | 2023-01-19 09:46:14 +0100
* Remove dead code. (Benjamin Bannier, Corelight)
* Remove performance pessimization introduced in `84fb4f21f494`. (Benjamin Bannier, Corelight)
When exposing this function directly we made the argument always
evaluate. This now causes us to compute strings for logging even if they
are never emitted.
Undo this change as it is actually not needed for the cleanup it was
initially intended for.
* GH-1345: Fix pathological performance for `_haveEod` on highly chunked streams. (Benjamin Bannier, Corelight)
This function was identified as a performance bottleneck when parsing
`bytes` with a huge size from a stream with many chunks. The reason it
performed so poorly was due to its use of `unsafeEnd`: since `unsafeEnd`
creates an unsafe iterator from `end()` it always needs to compute the
chunk the safe iterator pointed to; if the stream contains many chunks
this causes the seen poor performance.
Since we only access `offset` use safe iterators instead. This makes it
much cheaper to call this function so we can safely use it during
parsing.
Since this change only affects performance we do not add a test case.
For a benchmark see #1345.
Closes #1345.
* Remove EOL fedora-35, add fedora-37. (Benjamin Bannier, Corelight)
* Bump Zeek version in zeek-plugin CI job. (Benjamin Bannier, Corelight)
* Bump Zeek docs. (Benjamin Bannier, Corelight)
1.7.0-dev.37 | 2023-01-09 16:10:40 +0100
* Decrease excessive RAM on some CI platforms. (Benjamin Bannier, Corelight)
* Make all CI tasks greedy. (Benjamin Bannier, Corelight)
* Rerun BTest up to three times in CI. (Benjamin Bannier, Corelight)
1.7.0-dev.33 | 2023-01-05 17:33:00 +0100
* Update repo to not publish Docker images anymore. (Benjamin Bannier, Corelight)
1.7.0-dev.31 | 2023-01-05 15:38:13 +0100
* GH-1326: Generate proper runtime types for enums. (Benjamin Bannier, Corelight)
* Allow default for `vector::Allocator` with some non-class types. (Benjamin Bannier, Corelight)
* Remove unused define. (Benjamin Bannier, Corelight)
1.7.0-dev.25 | 2023-01-04 10:26:33 +0100
* GH-1330: Reject uses of imported module IDs as expression. (Benjamin Bannier, Corelight)
* Fix test `Backtrace.comparison` for aggressive constant folding. (Benjamin Bannier, Corelight)
1.7.0-dev.22 | 2022-12-14 13:25:57 +0100
* Push container images to Docker Hub zeek org, too. (Arne Welzel, Corelight)
1.7.0-dev.20 | 2022-12-14 13:24:47 +0100
* Bump Cirrus macos CI. (Benjamin Bannier, Corelight)
* Fix test `Backtrace.comparison` for aggressive constant folding. (Benjamin Bannier, Corelight)
* Remove workaround for outdated Homebrew db on Cirrus CI. (Benjamin Bannier, Corelight)
1.7.0-dev.16 | 2022-12-14 10:29:59 +0100
* Audit previously disabled clang-tidy-15 checks. (Benjamin Bannier, Corelight)
1.7.0-dev.4 | 2022-12-13 10:56:35 +0100
* Fix docs for enum using semicolon instead of comma. (Arne Welzel, Corelight)
1.7.0-dev.2 | 2022-12-13 10:43:41 +0100
* GH-1322: Bring implementation of `Sink::write` in line with declaration. (Benjamin Bannier, Corelight)
* Add placeholder section for 1.7 to NEWS. (Benjamin Bannier, Corelight)
1.6.0 | 2022-12-12 12:38:01 +0100
* Release 1.6.0. (Benjamin Bannier, Corelight)
1.6.0-dev.147 | 2022-12-12 09:40:49 +0100
* GH-1319: Add validation rejecting unsupported attributes on unit variables. (Benjamin Bannier, Corelight)
1.6.0-dev.145 | 2022-12-12 09:14:22 +0100
* doc/zeek: zkg template changed and mention packet analyzers (Arne
Welzel, Corelight)
1.6.0-dev.143 | 2022-12-12 09:02:59 +0100
* GH-1298: Fix/clarify bitfield docs. (Robin Sommer, Corelight)
1.6.0-dev.141 | 2022-12-12 08:56:24 +0100
* Expose new `pack`/`unpack` operators in Spicy. These provide
low-level primitives for transforming a value into, or out of, a
binary representations. See
https://docs.zeek.org/projects/spicy/en/latest/programming/language/packing.html
for more. Internally, `unpack` already existed; `pack` is new.
(Robin Sommer, Corelight)
* Update clang-tidy config for clang-15. (Benjamin Bannier, Corelight)
* Use clang-15 for lint CI job. (Benjamin Bannier, Corelight)
1.6.0-dev.133 | 2022-12-07 08:44:38 +0100
* Improve efficiency of `startsWith` for long inputs. (Benjamin Bannier, Corelight)
1.6.0-dev.131 | 2022-12-06 10:37:30 +0100
* Drop redundant leading `::` for C++ entities in script land. (Benjamin Bannier, Corelight)
* GH-1285: Remove implemented TODO in docs. (Benjamin Bannier, Corelight)
* Normalize names used in `__library_type`. (Benjamin Bannier, Corelight)
* Normalize any type `cxxID` set through C++ API. (Benjamin Bannier, Corelight)
* Normalize `&cxxname` values to be fully qualified. (Benjamin Bannier, Corelight)
* Expose function instead of macro for `hilti::debug`. (Benjamin Bannier, Corelight)
* Fix duplicate prefixing of `::` for prototypes generated for `&cxxname`. (Benjamin Bannier, Corelight)
* Bump pre-commit hooks. (Benjamin Bannier, Corelight)
1.6.0-dev.122 | 2022-12-05 09:31:26 +0100
* GH-1311: Validate that unit using `self.context()` declares `%context`. (Benjamin Bannier, Corelight)
1.6.0-dev.120 | 2022-12-05 09:30:26 +0100
* Explicitly type integer to boolean cast. (Benjamin Bannier, Corelight)
1.6.0-dev.118 | 2022-12-02 12:20:30 +0100
* cmake/FindGoldLinker: Do not use gold by default (Arne Welzel, Corelight)
* cmake/FindGoldLinker: Put -fuse-ld=gold before existing flags (Arne Welzel, Corelight)
1.6.0-dev.115 | 2022-12-01 13:59:34 +0100
* GH-1303: Fix incorrect offset computation in `advanceToNextData`. (Benjamin Bannier, Corelight)
1.6.0-dev.113 | 2022-11-18 11:48:35 +0100
* GH-1294: Add library function to parse an address from string or bytes. (Robin Sommer, Corelight)
## Parses an address from a string. The address can be in standard IPv4 or IPv6
## ASCII representation. The function raises ``InvalidArgument`` if the string
## could not be parsed.
public function parse_address(s: string) : addr;
## Parses an address from a bytes instance. The address can be in standard IPv4
## or IPv6 ASCII representation. The function raises ``InvalidArgument`` if the
## string could not be parsed.
public function parse_address(b: bytes) : addr;
* Support overloaded functions in documentation. (Robin Sommer, Corelight)
1.6.0-dev.110 | 2022-11-16 09:43:26 +0100
* GH-1299: Add validator for bitfield field ranges. (Benjamin Bannier, Corelight)
* Bump doctest to 2.4.9. (Benjamin Bannier, Corelight)
1.6.0-dev.107 | 2022-11-14 09:19:03 +0100
* Post synchronization-related debug messages in `spicy-verbose` stream. (Benjamin Bannier, Corelight)
* Log successful synchronization. (Benjamin Bannier, Corelight)
1.6.0-dev.104 | 2022-11-07 09:54:12 +0100
* Quote CMake string to ensure correct argument count. (Nic Boet)
* Fix Zeek docs build for case-sensitive filesystems. (Benjamin Bannier, Corelight)
1.6.0-dev.101 | 2022-10-27 12:59:41 +0200
* Fix fuzzer build for recently renamed spicy-tftp files. (Benjamin Bannier, Corelight)
* Make it possible to parameterize location of fuzzer lib. (Benjamin Bannier, Corelight)
* Update docs for changes in spicy-plugin and spicy-tftp. (Benjamin Bannier, Corelight)
1.6.0-dev.97 | 2022-10-27 08:47:59 +0200
* Downgrade required Flex version. (Johanna Amann, Corelight)
1.6.0-dev.95 | 2022-10-27 08:47:30 +0200
* GH-1273: Replace `Lambda` class. (Benjamin Bannier, Corelight)
1.6.0-dev.93 | 2022-10-27 08:46:22 +0200
* Show btest progress in CI. (Benjamin Bannier, Corelight)
* Remove configuration from JIT hash. (Benjamin Bannier, Corelight)
1.6.0-dev.90 | 2022-10-26 14:57:02 +0200
* Remove `hilti::rt::isDebugVersion()`. (Robin Sommer, Corelight)
* Remove `--optimize` flag. This was already a no-op, and just
confusing/misleading. (Robin Sommer, Corelight)
* Tie HLTOs files to the Spicy version that generated them. They
will now fail at load time if the current Spicy version doesn't
match what they were built with. (Robin Sommer, Corelight)
* Embed a C function into `hilti-rt` that encodes our version into
its name. If a host applications links against this, it will fail
to load if the runtime version changes without a rebuild. (Robin
Sommer, Corelight)
1.6.0-dev.81 | 2022-10-26 12:32:26 +0200
* Documentation updates. (Robin Sommer, Corelight)
- Document how to pull custom C++ code into Spicy.
- Adapt Zeek instructions for zkg template updates.
- Documentation updates for recent Zeek integration changes.
1.6.0-dev.71 | 2022-10-20 18:40:36 +0200
* Bump justrx. (Robin Sommer, Corelight)
1.6.0-dev.68 | 2022-10-05 08:50:05 +0200
* GH-1266: Fix wrong type for Spicy-side `self` expression. (Robin
Sommer, Corelight)
* GH-1261: Fix inability to access unit fields through `self` in
`&convert` expressions. (Robin Sommer, Corelight)
* GH-1267: Install only needed SafeInt header. (Benjamin Bannier,
Corelight)
* Disallow `self` as ID in declarations. (Robin Sommer, Corelight)
* Fix accidental lookup of empty IDs. (Robin Sommer, Corelight)
* Add helper script to diff two AST. (Robin Sommer, Corelight)
* Documentation updates. (Benjamin Bannier, Corelight)
- Update doc link to commits mailing list.
- Update version referenced in docs.
- Add doc link to releases packages for centos8-stream.
1.6.0-dev.55 | 2022-09-27 13:22:08 +0200
* GH-1267: Install only needed SafeInt header. (Benjamin Bannier, Corelight)
1.6.0-dev.53 | 2022-09-07 16:21:02 +0200
* Clarify that `%context` can only be used in top-level units. (Robin Sommer, Corelight)
1.6.0-dev.50 | 2022-08-22 16:33:10 +0200
* GH-1249: Allow combining `&eod` with `&until` or `&until-including`. (Benjamin Bannier, Corelight)
1.6.0-dev.48 | 2022-08-18 16:30:14 +0200
* GH-1251: When decoding bytes into a string using a given character
set, allow caller to control error handling. (Robin Sommer,
Corelight)
All methods taking a charset parameters now take an additional
enum selecting 1 of 3 possible error handling strategies in case a
character can't be decoded/represented: `STRICT` throws an error,
`IGNORE` skips the problematic character and proceeds with the
next, and `REPLACE` replaces the problematic character with a safe
substitute. `REPLACE` is the default everywhere now, so that by
default no errors are triggered.
This comes with an additional functional change for the ASCII
encoding: we now consistently sanitize characters that ASCII can't
represent when in `REPLACE`/`IGNORE` modes (and, hence, by
default), and trigger errors in `STRICT` mode. Previously, we'd
sometimes let them through, and never triggered any errors. This
also fixes a bug with the ASCII encoding sometimes turning a
non-printable character into multiple repeated substitutes.
* GH-1170: Fix contexts not allowing being passed `inout`. (Robin
Sommer, Corelight)
* GH-1143, GH-1220: Add coercion on assignment for optionals that
only differ in constness of their inner types. (Robin Sommer,
Corelight)
* GH-1115, GH-1196: Explicitly type temporary value used by
`&max_size` logic. (Robin Sommer, Corelight)
* GH-1250: Fix internal errors when seeing unsupported character
classes in regular expression. (Robin Sommer, Corelight)
* GH-1234, GH-1238: Fix assertions with anonymous struct
constructor. (Robin Sommer, Corelight)
* GH-1233: Reject key types for maps that can't be sorted. (Robin
Sommer, Corelight)
* GH-1230: Add coercion to default argument of `map::get`. (Robin
Sommer, Corelight)
* GH-1248: Fix `stop` for unbounded loop. (Robin Sommer, Corelight)
1.6.0-dev.28 | 2022-07-27 08:43:04 +0200
* Fix build with empty CMAKE_CXX_FLAGS_{DEBUG,RELEASE}. (Fabrice Fontaine)
1.6.0-dev.26 | 2022-07-26 11:15:20 +0200
* Fix validator for field `&default` expression types for constness. (Benjamin Bannier, Corelight)
1.6.0-dev.24 | 2022-07-26 11:14:06 +0200
* Merge branch 'topic/bbannier/doc-fixes' (Benjamin Bannier, Corelight)
* Clarify that `&until` consumes the delimiter. (Benjamin Bannier, Corelight)
* Add FAQ item on source locations. (Benjamin Bannier, Corelight)
* Add example for use of `?.`. (Benjamin Bannier, Corelight)
* Bump Zeek docs. (Benjamin Bannier, Corelight)
1.6.0-dev.19 | 2022-07-12 10:46:48 +0200
* GH-1236: Add support for adding link dependencies via `--cxx-link`. (Benjamin Bannier, Corelight)
1.6.0-dev.17 | 2022-07-08 12:12:02 +0200
* GH-1227: Fix code generation when a module's file could be imported through different means. (Robin Sommer, Corelight)
1.6.0-dev.15 | 2022-07-07 12:11:55 +0200
* GH-1231: Add special handling for potential `advance` failure in trial mode. (Benjamin Bannier, Corelight)
* Expose type `MissingData` in HILTI. (Benjamin Bannier, Corelight)
* GH-1231: Add failing test for #1231. (Benjamin Bannier, Corelight)
* Use default compiler on FreeBSD. (Benjamin Bannier, Corelight)
* Update CI to freebsd-13.1. (Benjamin Bannier, Corelight)
1.6.0-dev.8 | 2022-07-06 11:40:25 +0200
* GH-1240: Clarify docs on `SPICY_VERSION`. (Benjamin Bannier, Corelight)
1.6.0-dev.6 | 2022-07-05 14:22:35 +0200
* Add C keywords up to C23 to identifier sanitizer list. (Benjamin Bannier, Corelight)
* Add C++ keywords up to C++20 to identifier sanitizer list. (Benjamin Bannier, Corelight)
* Sort list of C++ keywords to sanitize. (Benjamin Bannier, Corelight)
* Fix doc check for renames in spicy-tftp. (Benjamin Bannier, Corelight)
* Update doc links for latest releases. (Benjamin Bannier, Corelight)
* Add placeholder section for 1.6 to NEWS. (Benjamin Bannier, Corelight)
1.5.0 | 2022-06-30 12:15:14 +0200
* Release 1.5.0 (Benjamin Bannier, Corelight)
* Explicitly request content write permission for create-release action. (Benjamin Bannier, Corelight)
* Update NEWS file. (Benjamin Bannier, Corelight)
1.5.0-dev.131 | 2022-06-30 10:15:01 +0200
* Extending content on zkg template. (Robin Sommer, Corelight)
1.5.0-dev.129 | 2022-06-28 12:08:25 +0200
* GH-1224: Fix import segfault. (Robin Sommer, Corelight)
1.5.0-dev.127 | 2022-06-27 14:35:05 +0200
* Bump doc links to 1.4.1. (Benjamin Bannier, Corelight)
* Fix links to Fedora artifacts for releases. (Benjamin Bannier, Corelight)
* GH-1205: Update Spicy docs for now being built into Zeek. (Benjamin Bannier, Corelight)
1.5.0-dev.123 | 2022-06-21 13:32:59 +0200
* GH-1217: Produce `hilti::rt::Bool` when casting to boolean. (Benjamin Bannier, Corelight)
1.5.0-dev.121 | 2022-06-20 14:39:05 +0200
* GH-1209: Provide error message to `%error` handler. (Robin Sommer, Corelight)
We now allow to optionally provide a string parameter with
`%error` that will receive the associated error message:
on %error(msg: string) { print msg; }
* GH-1206: Fix detection of recursive dependencies. (Robin Sommer, Corelight)
* Fix internal error with not fully resolved IDs. (Robin Sommer, Corelight)
1.5.0-dev.116 | 2022-06-17 11:01:21 +0200
* Avoid recomputing signatures. (Benjamin Bannier, Corelight)
* Avoid computing format string if debug stream not enabled. (Benjamin Bannier, Corelight)
* Use `unordered_set` to cache resolved types. (Benjamin Bannier, Corelight)
* Reorder instructions to avoid performing unneeded work. (Benjamin Bannier, Corelight)
* Avoid recomputing same information when resolving expressions. (Benjamin Bannier, Corelight)
* Prevent excessive copies. (Benjamin Bannier, Corelight)
* Small optimizations in `matchOverloads`. (Benjamin Bannier, Corelight)
* Remove excessive copying in `Operator::operands`. (Benjamin Bannier, Corelight)
1.5.0-dev.107 | 2022-06-17 08:43:12 +0200
* GH-1210: Prevent unnecessarily executable stack with GNU toolchain. (Benjamin Bannier, Corelight)
1.5.0-dev.105 | 2022-06-15 12:11:01 +0200
* Drop support for end-of-life Fedora 33/34, add support for Fedora 35/36. (Benjamin Bannier, Corelight)
* GH-1204: Remove potential use-after-move. (Benjamin Bannier, Corelight)
1.5.0-dev.102 | 2022-06-09 15:31:22 +0200
* Allow changing `DESTDIR` between configure and install time. (Benjamin Bannier, Corelight)
* GH-1183: Update docs for Discourse migration. (Benjamin Bannier, Corelight)
1.5.0-dev.99 | 2022-06-08 16:37:08 +0200
* GH-1201: Adjust removal of symlinks on install for `DESTDIR`. (Benjamin Bannier, Corelight)
1.5.0-dev.97 | 2022-06-08 16:33:24 +0200
* Disable building of benchmark target by default. (Benjamin Bannier, Corelight)
1.5.0-dev.95 | 2022-06-08 12:22:01 +0200
* Prevent too early integer overflow in `pow`. (Benjamin Bannier, Corelight)
* Make handling of sanitizer workarounds more granular. (Benjamin Bannier, Corelight)
1.5.0-dev.92 | 2022-06-07 11:53:18 +0200
* GH-44: Update docs for spicy-plugin rename `_Zeek::Spicy` -> `Zeek::Spicy`. (Benjamin Bannier, Corelight)
1.5.0-dev.90 | 2022-06-03 13:11:14 +0200
* GH-1187: Fix support for having multiple source modules of the
same name. (Robin Sommer, Corelight)
There was an underlying assumption in much of the code that a module
name would be globally unique, meaning it could be used as index into
maps and as seeds for C++ identifiers. However, while that's often the
case, the `import ... from ...` syntax allow pulling in multiple
modules all having the same name.
This change fixes that to track a module's "scope" (i.e., the part
after `from ...`) more thoroughly across various pieces..
* Fix test that could break because of file name clash. (Robin
Sommer, Corelight)
* Fix concatenation of IDs. (Robin Sommer, Corelight)
* Fix error message. (Robin Sommer, Corelight)
* Fix for HILTI printing of `import` statements. (Robin Sommer, Corelight)
* Dump ASTs with ``--dump-code`` as well. (Robin Sommer, Corelight)
1.5.0-dev.83 | 2022-06-02 09:43:07 +0200
* Bump 3rdparty/pathfind to latest snapshot. (Benjamin Bannier, Corelight)
* Bump 3rdparty/filesystem to 1.5.12. (Benjamin Bannier, Corelight)
* Switch to vendored nlohmann/json. (Benjamin Bannier, Corelight)
* Bump Zeek docs. (Benjamin Bannier, Corelight)
1.5.0-dev.78 | 2022-05-31 15:08:20 +0200
* Stop interning Locations. (Benjamin Bannier, Corelight)
* Avoid recomputing already known canonical ID. (Benjamin Bannier, Corelight)
* Simplify creating of refs when building scope. (Benjamin Bannier, Corelight)
* Speed up building of scopes. (Benjamin Bannier, Corelight)
1.5.0-dev.73 | 2022-05-31 15:07:35 +0200
* GH-1073: Switch to ECR images in documentation. (Benjamin Bannier, Corelight)
1.5.0-dev.71 | 2022-05-30 10:24:58 +0200
* GH-1050: Update location when entering most parser methods. (Benjamin Bannier, Corelight)
* Add builder method to set a new location. (Benjamin Bannier, Corelight)
1.5.0-dev.68 | 2022-05-30 10:03:28 +0200
* Suppress GCC warning about maybe uninitialized variable. (Benjamin Bannier, Corelight)
1.5.0-dev.66 | 2022-05-25 14:31:13 +0200
* GH-1174: Do not artificially suppress uses of `(u)int8` in some cases. (Benjamin Bannier, Corelight)
1.5.0-dev.64 | 2022-05-25 14:30:37 +0200
* GH-1190: Replace uses of deprecated `result_of` with `invoke_result`. (Benjamin Bannier, Corelight)
1.5.0-dev.62 | 2022-05-25 09:21:15 +0200
* Bump justrx. (Benjamin Bannier, Corelight)
* Do not build fiber benchmark target by default. (Benjamin Bannier, Corelight)
* Suppress GCC FP warnings around freeing of non-heap objects. (Benjamin Bannier, Corelight)
* Work around GCC incorrect state tracking involving std::optional<T*>` (Benjamin Bannier, Corelight)
1.5.0-dev.57 | 2022-05-18 14:16:12 +0200
* Use `rt::hashCombine` instead of handwritten hash combine. (Benjamin Bannier, Corelight)
* Drop contents of included codes from JIT state hash. (Benjamin Bannier, Corelight)
1.5.0-dev.54 | 2022-05-17 13:05:48 +0200
* GH-1179: Cap parallelism use for JIT background jobs. (Benjamin Bannier, Corelight)
* Move JIT background jobs to its own class. (Benjamin Bannier, Corelight)
1.5.0-dev.51 | 2022-05-16 16:37:15 +0200
* Avoid truncation when performing int64 range check. (Benjamin Bannier, Corelight)
1.5.0-dev.49 | 2022-05-16 16:27:50 +0200
* Fix signed/unsigned comparison warnings flagged by GCC. (Benjamin Bannier, Corelight)
* Remove unused variables. (Benjamin Bannier, Corelight)
* Fix linking of runtime test executables. (Benjamin Bannier, Corelight)
* Only check whether Zeek docs are up-to-date from cron builds. (Benjamin Bannier, Corelight)
1.5.0-dev.44 | 2022-05-10 09:01:16 +0200
* Minor edits to the Zeek Integration section (Christian Kreibich, Corelight)
1.5.0-dev.42 | 2022-05-06 11:43:58 +0200
* GH-1171: Remove freebsd11, add freebsd13. (Benjamin Bannier, Corelight)
1.5.0-dev.40 | 2022-05-04 14:25:52 +0200
* Enable building on armv7. (Benjamin Bannier, Corelight)
* Remove test assumption on whether `char` is signed. (Benjamin Bannier, Corelight)
1.5.0-dev.37 | 2022-05-03 15:54:47 +0200
* Add binary packaging mode. (Benjamin Bannier, Corelight)
1.5.0-dev.35 | 2022-04-26 11:28:26 +0200
* GH-1114: Update test comments to reflect actual behavior. (Benjamin Bannier, Corelight)
1.5.0-dev.33 | 2022-04-21 16:35:04 +0200
* GH-1164: Make compiler plugin initialization explicit. (Benjamin Bannier, Corelight)
* Refresh package docs with `doc/scripts/autogen-zeek-docs`. (Benjamin Bannier, Corelight)
1.5.0-dev.30 | 2022-04-21 09:10:11 +0200
* Bump pre-commit hooks. (Benjamin Bannier, Corelight)
* Add fuzzing related files. (Benjamin Bannier, Corelight)
* Refresh package docs with `doc/scripts/autogen-zeek-docs`. (Benjamin Bannier, Corelight)
1.5.0-dev.26 | 2022-04-14 07:53:47 +0200
* Fix warnings from LGTM. (Benjamin Bannier, Corelight)
* Bump LLVM in LGTM config. (Benjamin Bannier, Corelight)
* Allow building with gcc-8.3. (Benjamin Bannier, Corelight)
1.5.0-dev.22 | 2022-04-13 12:18:43 +0200
* Disable tests of lossy (u)int64_t-double conversion on 32bit. (honk)
* Adjust signature in test. (Benjamin Bannier, Corelight)
* Fix `chars_to_uint64` for 32bit platforms. (honk)
* Simplify implementation of `ast::ctor::SignedInteger`. (Benjamin Bannier, Corelight)
* Allow building on 32bit platforms. (Benjamin Bannier, Corelight)
1.5.0-dev.16 | 2022-04-12 11:03:38 +0200
* GH-1142: Fix clang-tidy `HeaderFilterRegex`. (Benjamin Bannier, Corelight)
1.5.0-dev.14 | 2022-04-11 11:34:39 +0200
* Fix incorrect exception for parse errors. (Benjamin Bannier, Corelight)
1.5.0-dev.12 | 2022-04-07 11:44:43 +0200
* GH-1134: Add support for synchronize-at and synchronize-after properties. (Benjamin Bannier, Corelight)
1.5.0-dev.10 | 2022-04-07 11:44:04 +0200
* GH-1080: Reject constant declarations at non-global scope. (Benjamin Bannier, Corelight)
* Fix test for `Map::value_type` stringification. (Benjamin Bannier, Corelight)
1.5.0-dev.7 | 2022-03-30 15:28:35 +0200
* GH-1154: Add stringificaton of `Map::value_type`. (Benjamin Bannier, Corelight)
1.5.0-dev.5 | 2022-03-22 14:21:43 +0100
* GH-1150: Preserve additional permissions from umask when generating HLTO files. (Benjamin Bannier, Corelight)
1.5.0-dev.3 | 2022-03-22 10:44:59 +0100
* Refresh package docs with `doc/scripts/autogen-zeek-docs`. (Benjamin Bannier, Corelight)
* Fix doc gen script to allow for tuples with named fields in return type. (Benjamin Bannier, Corelight)
* Add placeholder section for 1.5 to NEWS. (Benjamin Bannier, Corelight)
1.4.0 | 2022-03-11 11:16:37 +0100
* Update NEWS. (Benjamin Bannier, Corelight)
* Bump docs for spicy-plugin. (Benjamin Bannier, Corelight)
1.4.0-dev.264 | 2022-03-10 11:22:08 +0100
* Add missing include. (Benjamin Bannier, Corelight)
* Allow teardown of resumables even if runtime is already gone. (Benjamin Bannier, Corelight)
* Fix clang-tidy warning about trivially copyable types in `stream.h`. (Benjamin Bannier, Corelight)
* Remove unused method `Chunk::isCompact`. (Benjamin Bannier, Corelight)
* Take gaps explicitly into account when recovering. (Benjamin Bannier, Corelight)
* Add a test for error recovery on gap. (Benjamin Bannier, Corelight)
* Use more general exception type for recoverable errors in Spicy. (Benjamin Bannier, Corelight)
* Add a chunk type for gaps. (Benjamin Bannier, Corelight)
1.4.0-dev.255 | 2022-03-04 09:01:36 +0100
* GH-1036: Support unit initialization through a struct constructor
expression. (Robin Sommer, Corelight)
This works now:
```
type X = unit {