@@ -4,6 +4,137 @@ Bluespec Compiler (BSC) Release Notes
4
4
:last-update-label!:
5
5
:nofooter:
6
6
7
+ 2024.01 Release
8
+ ---------------
9
+
10
+ Changes since release 2023.07:
11
+
12
+ Documentation
13
+ ~~~~~~~~~~~~~
14
+
15
+ * Updates to the READMEs
16
+ ** Add Gentoo to the list of OSes with BSC packages
17
+ ** Update the URL for Icarus Verilog
18
+ ** Additional links to documentation
19
+ ** Link to Repology search for Bluespec packages
20
+
21
+ * Document string types in the BH and BSV Reference Guides
22
+
23
+ * Document the Generics feature and associated types and type class in
24
+ the Libraries Reference Guide
25
+
26
+ * Minor cleanups and typo fixes in the BH and BSV Reference Guides and
27
+ Libraries Reference Guide
28
+
29
+ Compiler
30
+ ~~~~~~~~
31
+
32
+ * Fix a bug in scheduling inference for action methods with arguments,
33
+ when an argument is used to conditionally execute an SBR action and
34
+ inference doesn't otherwise determine the method to conflict with
35
+ itself (GitHub issue #641)
36
+
37
+ * Change the derived `Generic` instance for enums and tagged unions
38
+ to use a balanced binary tree
39
+ ** This significantly improves the speed and memory use of the
40
+ compiler on designs with large enums
41
+ (GitHub issue #334, discussion #414)
42
+
43
+ * Remove the warning on uses of `Generic` that the feature is
44
+ experimental, now that the implementation has settled
45
+
46
+ * Use UTF-8 instead of ISO-8859-1 for all text-like I/O (GitHub PR #601)
47
+ ** Source files can now include non-Latin characters!
48
+
49
+ * In BH, disallow `°` and `´` in identifiers and instead parse them as symbols
50
+ (GitHub PR #610)
51
+
52
+ * In BH, support more clock and reset pragmas available to BSV
53
+ (GitHub issues #616, #224)
54
+ ** Specifically: `gate_input_clocks` , `clock_family` , `clock_prefix` ,
55
+ `gate_prefix` , `reset_prefix`
56
+
57
+ * In BH, add missing features to the `properties` pragma (GitHub PR #626)
58
+
59
+ * In BH. fix the parsing of `arg_names` interface pragma to allow uppercase
60
+ identifiers and disallow qualified names (GitHub issue #654)
61
+
62
+ * Fix the typecheck of struct update/literal/pattern (GitHub issue #628)
63
+ ** This mostly fixes issues with qualified field names in BH,
64
+ but may improve position information in error messages for BSV
65
+
66
+ * Fix the BSV parsing of naked expressions in statement and
67
+ case-expression contexts (GitHub issue #646)
68
+
69
+ * Fix a failure to satisfy provisos during typecheck (GitHub issue #678)
70
+
71
+ * Update source code to compile with GHC 9.8
72
+
73
+ Libraries
74
+ ~~~~~~~~~
75
+
76
+ * In BH, use the unicode ring operator (`∘` ) for function composition
77
+ (GitHub PR #601)
78
+
79
+ * Improve provisos in the `FixedPoint` package (GitHub PR #249)
80
+ ** `FixedPoint` does not support an integer compoment with bit width
81
+ less than one and this is now enforced with provisos
82
+ ** The `epsilon` function also requires at least two bits in the
83
+ representation
84
+ ** Polymorphic uses of the `FixedPoint` type may need to add `Min`
85
+ provisos (see GitHub PR #634 for example updates in the testsuite)
86
+
87
+ * Add a CShow generic instance for higher-rank fields
88
+
89
+ Bluetcl
90
+ ~~~~~~~
91
+
92
+ * New `version ghc` subcommand for querying the version of GHC that
93
+ the BSC tools were compiled with
94
+
95
+ Bluesim
96
+ ~~~~~~~
97
+
98
+ * Fix the use of named sephamores, so that if Bluesim crashes before
99
+ unlinking a semaphore, it won't cause a failure the next time Bluesim
100
+ runs with the same process ID and attempts to link the same name
101
+ (GitHub issue #611)
102
+
103
+ * Resolve `-Wformat-truncation` warning from GCC (GitHub PR #649)
104
+
105
+ Test Suite
106
+ ~~~~~~~~~~
107
+
108
+ * When creating an archive of log files (`archive_logs.sh` ),
109
+ include the C++ compiler output for SystemC tests
110
+ ** The GitHub CI uses this script to upload an artifact
111
+ when there is a failure
112
+
113
+ * The GHC version used to build the BSC tools is available in the test
114
+ infrastructure (as `$ghc_version` ), for use when the expected
115
+ behavior of a test differs depending on the GHC version
116
+
117
+ * Fix the value of `$bsc_version`
118
+
119
+ Internal
120
+ ~~~~~~~~
121
+
122
+ * Releases now built with GHC 9.4.8 (previously 9.2.8)
123
+
124
+ * Updates to GitHub CI (continuous integration)
125
+ ** Reorganization to support building and testing with a variety
126
+ of GHC versions; for now, test with the version for release
127
+ and with the latest version (9.8.1)
128
+ ** Explicitly specify the Haskell Language Server (HLS) version to
129
+ use, that is known to support the specified GHC version
130
+ ** Turn off fast-fail, so that a failure for one OS version won't
131
+ kill the processes testing other versions
132
+ ** Support macOS VMs that don't have ghcup installed
133
+ ** Support macOS VMs where the SystemC library is compiled with
134
+ an unpredictable C++ standard
135
+
136
+ '''
137
+
7
138
2023.07 Release
8
139
---------------
9
140
0 commit comments