-
Notifications
You must be signed in to change notification settings - Fork 37
/
CHANGES
4652 lines (2834 loc) · 162 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.6.1 | 2023-01-25 09:39:36 +0100
* Add stringification to UnitContext. (Benjamin Bannier, Corelight)
Not adding this in the first place broke e.g., `-X flow` or `-X trace`.
(cherry picked from commit 7ee860a2bb81962d60864d10090930cc8cb2ea64)
* Remove potential race during JIT when using `HILTI_CXX_COMPILER_LAUNCHER`. (Benjamin Bannier, Corelight)
We previously would not create unique names for different JIT
invocations if they came from the same directory. This causes issues if
the same module is imported into different analyzers where previously we
would generate the same C++ and object file name. Different JIT runs
could then race on the same output files and e.g., remove each others
inputs/outputs. As far as I can tell this was very unlikely to produce
incorrect behavior at runtime.
We now include all input files from a JIT run in the JIT hash. With that
above race is not possible anymore.
(cherry picked from commit 709990fe5593284e24822aa898e73ad988217d85)
* 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.
* Bump Zeek version in zeek-plugin CI job. (Benjamin Bannier, Corelight)
(cherry picked from commit 41922f69769d4ba20c45675ccd99caf117588735)
* Fix test `Backtrace.comparison` for aggressive constant folding. (Benjamin Bannier, Corelight)
This is a fixup commit for 1333be6b40de6 which addresses compilers not
interpreting `optnone`. For such compilers we want to continue setting
`noinline`.
(cherry picked from commit 422b8f4c2ebe12ce257cbed28092758ee3e905fe)
* Fix test `Backtrace.comparison` for aggressive constant folding. (Benjamin Bannier, Corelight)
In order to test construction of backtraces we used a helper function
which was marked `noinline` to guarantee that it always constructed a
new stack frame. It seems this was not enough as a sufficiently smart
compiler might perform other optimizations like e.g., constant folding
which would also remove the stack frame.
We now disable optimizations for this function to make sure it is
emitted.
(cherry picked from commit 1333be6b40de6042d353c8b36f90bc80991e9442)
* Bump Cirrus macos CI. (Benjamin Bannier, Corelight)
As of 2023-01-01 Cirrus will not offer Intel-based macos instances
anymore. This patch moves the Cirrus macos CI to M1 virtual machines.
Since M1 virtual machines do not support the previously tested OS
versions we also bump CI to test the last two macos version.
(cherry picked from commit c739aa886dc112fec4e5a8dcfb5e198af330dcc6)
* 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.
(cherry picked from commit d5fef37c379ac76762a7d8e2d9e3f9a417409a1b)
* 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.
(cherry picked from commit f101790bb82345a3d029ed5f4f94e8eda1ae8851)
* 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.
(cherry picked from commit 9a218491de15bd8eab22f8018a2725a9046e01c4)
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 {
a: uint8;
b: uint8;
};
...
local x: X = [$a = 1, $b = 2];
```
* GH-1112: Fix constness for dereferencing references. (Robin
Sommer, Corelight)
* Fix code markup in NEWS file. (Benjamin Bannier, Corelight)
1.4.0-dev.247 | 2022-02-23 09:43:39 +0100
* GH-1072: Disallow enum declarations with non-unique values. (Benjamin Bannier, Corelight)
It is unclear what code should be generated when requested to convert an
integer value to the following enum:
type E = enum {
A = 1,
B = 2,
C = 1,
};
For `1` we could produce either `E::A` or `E::C` here.
Instead of allowing that ambiguity we disallow enums with non-unique
values with this patch.
Closes #1072.
1.4.0-dev.245 | 2022-02-23 09:37:14 +0100
* GH-1043: Add validation rejecting untyped variable decl from struct initializer. (Benjamin Bannier, Corelight)
1.4.0-dev.243 | 2022-02-23 09:04:22 +0100
* GH-1096: Bump submodules and pre-commit hooks. (Benjamin Bannier, Corelight)
1.4.0-dev.236 | 2022-02-23 09:03:43 +0100
* GH-1131: Optimize out unused hooks related to synchronization. (Benjamin Bannier, Corelight)
1.4.0-dev.234 | 2022-02-23 09:03:08 +0100
* Fix styling of lists on RTD. (Benjamin Bannier, Corelight)
1.4.0-dev.232 | 2022-02-21 15:28:31 +0100
* Move clang-tidy run to its own CI job. (Benjamin Bannier, Corelight)
1.4.0-dev.230 | 2022-02-21 15:27:55 +0100
* GH-1120: Do not change a LHS to RHS when codegen'ing BuiltinFunctions. (Benjamin Bannier, Corelight)
1.4.0-dev.228 | 2022-02-18 19:12:51 +0100
* Add support for error recovery. (Benjamin Bannier, Corelight)
* Format unsigned integers with uppercase suffix. (Benjamin Bannier, Corelight)
* Do not prefix rendered parse errors with `parse error:`. (Benjamin Bannier, Corelight)
* Provide grammar function to return look-ahead literals for a given (Robin Sommer, Corelight)
production.
* Print grammar debug output only once tables have been computed. (Robin Sommer, Corelight)
* Remove duplicated and incorrect `default` case rendering to HILTI. (Benjamin Bannier, Corelight)
1.4.0-dev.180 | 2022-02-18 12:25:18 +0100
* Add step in `ci/run-ci` checking whether Zeek docs are up-to-date. (Benjamin Bannier, Corelight)
* Add doc build target to check whether docs are up-to-date. (Benjamin Bannier, Corelight)
* Remove unimplemented `deploy_docs` function in `ci/run-ci`. (Benjamin Bannier, Corelight)
1.4.0-dev.176 | 2022-02-17 14:14:06 +0100
* GH-1122: Make sure user-visible enums are represented by `int64_t`. (Benjamin Bannier, Corelight)
1.4.0-dev.174 | 2022-02-02 20:31:53 +0100
* Add a FAQ entry explicitly calling out Layer 2 analyzers. (Benjamin Bannier, Corelight)
1.4.0-dev.172 | 2022-01-26 12:05:12 +0100
* Redefine noop macro case so it always requires a semicolon. (Benjamin Bannier, Corelight)
* Be explicit about bugprone narrowing conversions. (Benjamin Bannier, Corelight)
* Fix diagnostics from clang-tidy's bugprone category. (Benjamin Bannier, Corelight)
* Fix diagnostics from clang-tidy's readability category. (Benjamin Bannier, Corelight)
* Fix diagnostics from clang-tidy's performance category. (Benjamin Bannier, Corelight)
* Fix diagnostics from clang-tidy's modernize category. (Benjamin Bannier, Corelight)
* Fix diagnostics from clang-tidy's cert category. (Benjamin Bannier, Corelight)
* Fix clang-tidy config. (Benjamin Bannier, Corelight)
We previously enabled subcategories incorrectly so that much fewer tests
than expected were run. We will fix the newly triggered diagnostics in
follow-up patches.
* Fix HeaderFilterRegex in clang-tidy config. (Benjamin Bannier, Corelight)
1.4.0-dev.162 | 2022-01-25 12:22:48 +0100
* Fix documentation link to TFTP sample capture files. (Benjamin Bannier, Corelight)
* Update documentation for removed centos releases. (Benjamin Bannier, Corelight)
This is a documentation fixup commit for 55d7775de25c8 where we removed
supported for EOL centos releases.
1.4.0-dev.159 | 2022-01-20 09:38:49 +0100
* GH-1084: Fix typing of map/vector index operators. (Robin Sommer,
Corelight)
* GH-1079: Fix import of global constants. (Robin Sommer, Corelight)
1.4.0-dev.153 | 2022-01-13 17:12:31 +0100
* Remove support for EOL centos releases, add centos-stream-8. (Benjamin Bannier, Corelight)
1.4.0-dev.151 | 2022-01-13 08:18:29 +0100
* GH-1092: Strip installation artifacts. (Benjamin Bannier, Corelight)
This removes debug symbols from installation artifacts. This leads to a
marked reduction in their size.
* Switch configure to use Release mode by default. (Benjamin Bannier, Corelight)
1.4.0-dev.148 | 2022-01-13 08:17:53 +0100
* Use libc++ instead of libstdc++ on debian-9. (Benjamin Bannier, Corelight)
In libstdc++-10-dev-10.3.0-13 Debian includes the upstream GCC patch
2b2d97fc545 without also including at least 4f032929ac9. This leads to
errors e.g., triggered from nlohmann/json were `&noexcept` attributes
are used inconsistently.
Since debian-9 should only receive security updates at this point it is
unclear to me how such a feature change ended up being backported. At
this point it is not clear to me whether it will see another patch
release. For these reasons we switch the build over to use libc++
instead which comes from the LLVM repo and should still receive reliable
updates.
1.4.0-dev.146 | 2022-01-08 10:02:10 +0100
* GH-1076: Do not pass errors inside sink units back up to parent.
(Robin Sommer, Corelight)
* GH-1077: Fix self-recursive units. (Robin Sommer, Corelight)
* GH-1069: Allow implicit C++ conversion from value reference to
strong reference. (Robin Sommer, Corelight)
* Fix typos in the source and docs. (Benjamin Bannier, Corelight)
1.4.0-dev.137 | 2022-01-07 10:41:29 +0100
* Fix typos in the source and docs. (Benjamin Bannier, Corelight)
1.4.0-dev.135 | 2021-12-22 11:04:51 +0100
* Update docs for Zeek plugin functions with recent changes. (Robin
Sommer, Corelight)
1.4.0-dev.133 | 2021-12-21 11:45:51 +0100
* GH-1088: Ensure that field hooks for lists see correct offset. (Benjamin Bannier, Corelight)
* Remove stray baselines. (Benjamin Bannier, Corelight)
* Lint all sh scripts with checkbashisms. (Benjamin Bannier, Corelight)
1.4.0-dev.129 | 2021-12-17 12:30:33 +0100
* GH-1087: Make `offset` return correct value even before parsing of field. (Benjamin Bannier, Corelight)
1.4.0-dev.127 | 2021-12-16 11:46:32 +0100
* GH-1045: Decouple whether Spicy was build with ccache from ccache use during JIT. (Benjamin Bannier, Corelight)
1.4.0-dev.124 | 2021-12-15 16:54:10 +0100
* Remove unneeded `%random-access` in tests and docs. (Benjamin Bannier, Corelight)
* Add validation catching use of deprecated `%random-access`. (Benjamin Bannier, Corelight)
* Enable random-access by default. (Benjamin Bannier, Corelight)
* Generate branch for `%random-access`-dependent trimming. (Benjamin Bannier, Corelight)
1.4.0-dev.117 | 2021-12-15 16:13:53 +0100
* GH-1068: Fix syntax for Spicy `struct` declaration. (Benjamin Bannier, Corelight)
1.4.0-dev.115 | 2021-12-15 15:51:26 +0100
* Fix typos in variable documentation. (Robin Sommer, Corelight)
* Document visibility for globals. (Benjamin Bannier, Corelight)
1.4.0-dev.112 | 2021-12-13 10:46:37 +0100
* Fix zeek_plugin CI task for broken apart zeek/spicy-analyzers. (Benjamin Bannier, Corelight)
1.4.0-dev.110 | 2021-12-13 10:46:04 +0100
* Show log for configure failures. (Benjamin Bannier)
1.4.0-dev.108 | 2021-12-13 10:43:52 +0100
* Refresh package docs with `doc/scripts/autogen-zeek-docs`. (Benjamin Bannier, Corelight)
* Fix docs build for split-apart zeek/spicy-analyzers. (Benjamin Bannier, Corelight)
That analyzer repo has been broken up into specific analyzer repos. Fix
scripts and docs on our side for that.
1.4.0-dev.105 | 2021-12-10 09:50:54 +0100
* Fix lints from cmake-lint. (Benjamin Bannier, Corelight)
* Reformat CMake files with cmake-format. (Benjamin Bannier, Corelight)
1.4.0-dev.102 | 2021-12-09 11:24:39 +0100
* Avoid calculating AST dump if we do not output it. (Benjamin Bannier, Corelight)
* Fix accidental calculation of immediately discarded debug output. (Benjamin Bannier, Corelight)
1.4.0-dev.99 | 2021-12-09 09:30:35 +0100
* GH-1056: Fix constness check for struct parameters. (Robin Sommer,
Corelight)
* GH-1057: Fix code generator to emit types correctly for transitive
dependencies. (Robin Sommer, Corelight)
1.4.0-dev.95 | 2021-12-07 11:23:17 +0100
* Fix dependency tracking of spicy-build CMake target. (Benjamin Bannier, Corelight)
* Fix outputs of CMake command to generate precompiled headers. (Benjamin Bannier, Corelight)
1.4.0-dev.92 | 2021-12-03 11:34:17 +0100
* Fix a typo in container Github action filter. (Benjamin Bannier, Corelight)
1.4.0-dev.90 | 2021-12-03 08:43:55 +0100
* GH-1059: Allow to use unit contexts in units with parameters. (Benjamin Bannier, Corelight)
* Bump 3rdparty/filesystem to v1.5.10. (Benjamin Bannier, Corelight)
* Bump gitlint pre-commit hooks to v0.17.0. (Benjamin Bannier, Corelight)
* Bump 3rdparty/benchmark to v1.6.0. (Benjamin Bannier, Corelight)
1.4.0-dev.85 | 2021-12-02 12:22:48 +0100
* Do not by default run Docker workflow for PRs. (Benjamin Bannier, Corelight)
* Bump published container to zeek-4.0.4. (Benjamin Bannier, Corelight)