26 * The Isabelle fonts render "\<inverse>" properly as superscript "-1". |
22 * The Isabelle fonts render "\<inverse>" properly as superscript "-1". |
27 |
23 |
28 * Old-style inner comments (* ... *) within the term language are no |
24 * Old-style inner comments (* ... *) within the term language are no |
29 longer supported (legacy feature in Isabelle2018). |
25 longer supported (legacy feature in Isabelle2018). |
30 |
26 |
|
27 * Old-style {* verbatim *} tokens are explicitly marked as legacy |
|
28 feature and will be removed soon. Use \<open>cartouche\<close> syntax instead, e.g. |
|
29 via "isabelle update_cartouches -t" (available since Isabelle2015). |
|
30 |
31 * Infix operators that begin or end with a "*" can now be paranthesized |
31 * Infix operators that begin or end with a "*" can now be paranthesized |
32 without additional spaces, eg "(*)" instead of "( * )". |
32 without additional spaces, eg "(*)" instead of "( * )". Minor |
|
33 INCOMPATIBILITY. |
33 |
34 |
34 * Mixfix annotations may use cartouches instead of old-style double |
35 * Mixfix annotations may use cartouches instead of old-style double |
35 quotes, e.g. (infixl \<open>+\<close> 60). The command-line tool "isabelle update -u |
36 quotes, e.g. (infixl \<open>+\<close> 60). The command-line tool "isabelle update -u |
36 mixfix_cartouches" allows to update existing theory sources |
37 mixfix_cartouches" allows to update existing theory sources |
37 automatically. |
38 automatically. |
38 |
39 |
39 * ML setup commands (e.g. 'setup', 'method_setup', 'parse_translation') |
40 * ML setup commands (e.g. 'setup', 'method_setup', 'parse_translation') |
40 need to provide a closed expression -- without trailing semicolon. Minor |
41 need to provide a closed expression -- without trailing semicolon. Minor |
41 INCOMPATIBILITY. |
42 INCOMPATIBILITY. |
42 |
43 |
43 * Command keywords of kind thy_decl / thy_goal may be more specifically |
|
44 fit into the traditional document model of "definition-statement-proof" |
|
45 via thy_defn / thy_stmt / thy_goal_defn / thy_goal_stmt. |
|
46 |
|
47 |
44 |
48 *** Isabelle/jEdit Prover IDE *** |
45 *** Isabelle/jEdit Prover IDE *** |
49 |
|
50 * The jEdit File Browser is more prominent in the default GUI layout of |
|
51 Isabelle/jEdit: various virtual file-systems provide access to Isabelle |
|
52 resources, notably via "favorites:" (or "Edit Favorites"). |
|
53 |
|
54 * Action "isabelle-export-browser" points the File Browser to the theory |
|
55 exports of the current buffer, based on the "isabelle-export:" virtual |
|
56 file-system. The directory view needs to be reloaded manually to follow |
|
57 ongoing document processing. |
|
58 |
|
59 * Action "isabelle-session-browser" points the File Browser to session |
|
60 information, based on the "isabelle-session:" virtual file-system. Its |
|
61 entries are structured according to chapter / session names, the open |
|
62 operation is redirected to the session ROOT file. |
|
63 |
|
64 * System option "jedit_text_overview" allows to disable the text |
|
65 overview column. |
|
66 |
46 |
67 * Fonts for the text area, gutter, GUI elements etc. use the "Isabelle |
47 * Fonts for the text area, gutter, GUI elements etc. use the "Isabelle |
68 DejaVu" collection by default, which provides uniform rendering quality |
48 DejaVu" collection by default, which provides uniform rendering quality |
69 with the usual Isabelle symbols. Line spacing no longer needs to be |
49 with the usual Isabelle symbols. Line spacing no longer needs to be |
70 adjusted: properties for the old IsabelleText font had "Global Options / |
50 adjusted: properties for the old IsabelleText font had "Global Options / |
71 Text Area / Extra vertical line spacing (in pixels): -2", now it |
51 Text Area / Extra vertical line spacing (in pixels): -2", now it |
72 defaults to 0. |
52 defaults to 0. |
73 |
53 |
74 * Improved sub-pixel font rendering (especially on Linux), thanks to |
54 * The jEdit File Browser is more prominent in the default GUI layout of |
75 OpenJDK 11. |
55 Isabelle/jEdit: various virtual file-systems provide access to Isabelle |
|
56 resources, notably via "favorites:" (or "Edit Favorites"). |
|
57 |
|
58 * Action "isabelle-export-browser" points the File Browser to the theory |
|
59 exports of the current buffer, based on the "isabelle-export:" virtual |
|
60 file-system. The directory view needs to be reloaded manually to follow |
|
61 ongoing document processing. |
|
62 |
|
63 * Action "isabelle-session-browser" points the File Browser to session |
|
64 information, based on the "isabelle-session:" virtual file-system. Its |
|
65 entries are structured according to chapter / session names, the open |
|
66 operation is redirected to the session ROOT file. |
76 |
67 |
77 * Support for user-defined file-formats via class isabelle.File_Format |
68 * Support for user-defined file-formats via class isabelle.File_Format |
78 in Isabelle/Scala (e.g. see isabelle.Bibtex.File_Format), configured via |
69 in Isabelle/Scala (e.g. see isabelle.Bibtex.File_Format), configured via |
79 the shell function "isabelle_file_format" in etc/settings (e.g. of an |
70 the shell function "isabelle_file_format" in etc/settings (e.g. of an |
80 Isabelle component). |
71 Isabelle component). |
81 |
72 |
|
73 * System option "jedit_text_overview" allows to disable the text |
|
74 overview column. |
|
75 |
82 * Command-line options "-s" and "-u" of "isabelle jedit" override the |
76 * Command-line options "-s" and "-u" of "isabelle jedit" override the |
83 default for system option "system_heaps" that determines the heap |
77 default for system option "system_heaps" that determines the heap |
84 storage directory for "isabelle build". Option "-n" is now clearly |
78 storage directory for "isabelle build". Option "-n" is now clearly |
85 separated from option "-s". |
79 separated from option "-s". |
|
80 |
|
81 * Update to OpenJDK 11, which is the current long-term support line |
|
82 after Java 8. It provides a very different font renderer, with improved |
|
83 sub-pixel font rendering. |
86 |
84 |
87 |
85 |
88 *** Document preparation *** |
86 *** Document preparation *** |
89 |
87 |
90 * Document markers are formal comments of the form \<^marker>\<open>marker_body\<close> that |
88 * Document markers are formal comments of the form \<^marker>\<open>marker_body\<close> that |
100 reversed list of tags in the presentation context. |
98 reversed list of tags in the presentation context. |
101 |
99 |
102 |
100 |
103 *** Isar *** |
101 *** Isar *** |
104 |
102 |
105 * More robust treatment of structural errors: begin/end blocks take |
|
106 precedence over goal/proof. |
|
107 |
|
108 * Implicit cases goal1, goal2, goal3, etc. have been discontinued |
103 * Implicit cases goal1, goal2, goal3, etc. have been discontinued |
109 (legacy feature since Isabelle2016). |
104 (legacy feature since Isabelle2016). |
110 |
105 |
|
106 * More robust treatment of structural errors: begin/end blocks take |
|
107 precedence over goal/proof. This is particularly relevant for the |
|
108 headless PIDE session and server. |
|
109 |
|
110 * Command keywords of kind thy_decl / thy_goal may be more specifically |
|
111 fit into the traditional document model of "definition-statement-proof" |
|
112 via thy_defn / thy_stmt / thy_goal_defn / thy_goal_stmt. |
|
113 |
111 |
114 |
112 *** HOL *** |
115 *** HOL *** |
113 |
|
114 * Formal Laurent series and overhaul of Formal power series |
|
115 in session HOL-Computational_Algebra. |
|
116 |
|
117 * Exponentiation by squaring in session HOL-Library; used for computing |
|
118 powers in class monoid_mult and modular exponentiation in session |
|
119 HOL-Number_Theory. |
|
120 |
|
121 * More material on residue rings in session HOL-Number_Theory: |
|
122 Carmichael's function, primitive roots, more properties for "ord". |
|
123 |
|
124 * The functions \<Union>, \<Inter>, \<Squnion>, \<Sqinter> |
|
125 (not the corresponding binding operators) now have the same precedence |
|
126 as any other prefix function symbol. Minor INCOMPATIBILITY. |
|
127 |
|
128 * Slightly more conventional naming schema in structure Inductive. |
|
129 Minor INCOMPATIBILITY. |
|
130 |
|
131 * Various _global variants of specification tools have been removed. |
|
132 Minor INCOMPATIBILITY, prefer combinators Named_Target.theory_map[_result] |
|
133 to lift specifications to the global theory level. |
|
134 |
116 |
135 * Command 'export_code' produces output as logical files within the |
117 * Command 'export_code' produces output as logical files within the |
136 theory context, as well as formal session exports that can be |
118 theory context, as well as formal session exports that can be |
137 materialized via command-line tools "isabelle export" or "isabelle build |
119 materialized via command-line tools "isabelle export" or "isabelle build |
138 -e" (with 'export_files' in the session ROOT). Isabelle/jEdit also |
120 -e" (with 'export_files' in the session ROOT). Isabelle/jEdit also |
163 |
145 |
164 * Code generation for Haskell: code includes for Haskell must contain |
146 * Code generation for Haskell: code includes for Haskell must contain |
165 proper module frame, nothing is added magically any longer. |
147 proper module frame, nothing is added magically any longer. |
166 INCOMPATIBILITY. |
148 INCOMPATIBILITY. |
167 |
149 |
168 * Code generation: slightly more conventional syntax for |
150 * Code generation: slightly more conventional syntax for 'code_stmts' |
169 'code_stmts' antiquotation. Minor INCOMPATIBILITY. |
151 antiquotation. Minor INCOMPATIBILITY. |
170 |
152 |
171 * The simplifier uses image_cong_simp as a congruence rule. The historic |
153 * Theory List: the precedence of the list_update operator has changed: |
172 and not really well-formed congruence rules INF_cong*, SUP_cong*, |
154 "f a [n := x]" now needs to be written "(f a)[n := x]". |
173 are not used by default any longer. INCOMPATIBILITY; consider using |
155 |
174 declare image_cong_simp [cong del] in extreme situations. |
156 * The functions \<Union>, \<Inter>, \<Squnion>, \<Sqinter> (not the corresponding binding operators) |
175 |
157 now have the same precedence as any other prefix function symbol. Minor |
176 * INF_image and SUP_image are no default simp rules any longer. |
158 INCOMPATIBILITY. |
177 INCOMPATIBILITY, prefer image_comp as simp rule if needed. |
|
178 |
159 |
179 * Simplified syntax setup for big operators under image. In rare |
160 * Simplified syntax setup for big operators under image. In rare |
180 situations, type conversions are not inserted implicitly any longer |
161 situations, type conversions are not inserted implicitly any longer |
181 and need to be given explicitly. Auxiliary abbreviations INFIMUM, |
162 and need to be given explicitly. Auxiliary abbreviations INFIMUM, |
182 SUPREMUM, UNION, INTER should now rarely occur in output and are just |
163 SUPREMUM, UNION, INTER should now rarely occur in output and are just |
183 retained as migration auxiliary. INCOMPATIBILITY. |
164 retained as migration auxiliary. INCOMPATIBILITY. |
184 |
165 |
185 * Theory List: the precedence of the list_update operator has changed: |
166 * The simplifier uses image_cong_simp as a congruence rule. The historic |
186 "f a [n := x]" now needs to be written "(f a)[n := x]". |
167 and not really well-formed congruence rules INF_cong*, SUP_cong*, are |
187 |
168 not used by default any longer. INCOMPATIBILITY; consider using declare |
188 * Theory "HOL-Library.Multiset": the <Union># operator now has the same |
169 image_cong_simp [cong del] in extreme situations. |
189 precedence as any other prefix function symbol. |
170 |
190 |
171 * INF_image and SUP_image are no default simp rules any longer. |
191 * Retired lemma card_Union_image; use the simpler card_UN_disjoint instead. |
172 INCOMPATIBILITY, prefer image_comp as simp rule if needed. |
192 |
|
193 * Facts sum_mset.commute and prod_mset.commute renamed to sum_mset.swap |
|
194 and prod_mset.swap, similarly to sum.swap and prod.swap. |
|
195 INCOMPATIBILITY. |
|
196 |
173 |
197 * Strong congruence rules (with =simp=> in the premises) for constant f |
174 * Strong congruence rules (with =simp=> in the premises) for constant f |
198 are now uniformly called f_cong_simp, in accordance with congruence |
175 are now uniformly called f_cong_simp, in accordance with congruence |
199 rules produced for mappers by the datatype package. INCOMPATIBILITY. |
176 rules produced for mappers by the datatype package. INCOMPATIBILITY. |
200 |
177 |
201 * Sledgehammer: |
178 * Retired lemma card_Union_image; use the simpler card_UN_disjoint |
202 - The URL for SystemOnTPTP, which is used by remote provers, has |
179 instead. INCOMPATIBILITY. |
203 been updated. |
180 |
204 - The machine-learning-based filter MaSh has been optimized to take |
181 * Facts sum_mset.commute and prod_mset.commute have been renamed to |
205 less time (in most cases). |
182 sum_mset.swap and prod_mset.swap, similarly to sum.swap and prod.swap. |
206 |
183 INCOMPATIBILITY. |
207 * SMT: reconstruction is now possible using the SMT solver veriT. |
184 |
208 |
185 * ML structure Inductive: slightly more conventional naming schema. |
209 * HOL-Library.Simps_Case_Conv: case_of_simps now supports overlapping |
186 Minor INCOMPATIBILITY. |
210 and non-exhaustive patterns and handles arbitrarily nested patterns. |
187 |
211 It uses on the same algorithm as HOL-Library.Code_Lazy, which assumes |
188 * ML: Various _global variants of specification tools have been removed. |
212 sequential left-to-right pattern matching. The generated |
189 Minor INCOMPATIBILITY, prefer combinators |
|
190 Named_Target.theory_map[_result] to lift specifications to the global |
|
191 theory level. |
|
192 |
|
193 * Theory HOL-Library.Simps_Case_Conv: 'case_of_simps' now supports |
|
194 overlapping and non-exhaustive patterns and handles arbitrarily nested |
|
195 patterns. It uses on the same algorithm as HOL-Library.Code_Lazy, which |
|
196 assumes sequential left-to-right pattern matching. The generated |
213 equation no longer tuples the arguments on the right-hand side. |
197 equation no longer tuples the arguments on the right-hand side. |
214 INCOMPATIBILITY. |
198 INCOMPATIBILITY. |
|
199 |
|
200 * Theory HOL-Library.Multiset: the <Union># operator now has the same |
|
201 precedence as any other prefix function symbol. |
|
202 |
|
203 * Session HOL-Library and HOL-Number_Theory: Exponentiation by squaring, |
|
204 used for computing powers in class "monoid_mult" and modular |
|
205 exponentiation. |
|
206 |
|
207 * Session HOL-Computational_Algebra: Formal Laurent series and overhaul |
|
208 of Formal power series. |
|
209 |
|
210 * Session HOL-Number_Theory: More material on residue rings in |
|
211 Carmichael's function, primitive roots, more properties for "ord". |
215 |
212 |
216 * Session HOL-SPARK: .prv files are no longer written to the |
213 * Session HOL-SPARK: .prv files are no longer written to the |
217 file-system, but exported to the session database. Results may be |
214 file-system, but exported to the session database. Results may be |
218 retrieved with the "isabelle export" command-line tool like this: |
215 retrieved with the "isabelle export" command-line tool like this: |
219 |
216 |
220 isabelle export -x "*:**.prv" HOL-SPARK-Examples |
217 isabelle export -x "*:**.prv" HOL-SPARK-Examples |
221 |
218 |
|
219 * Sledgehammer: |
|
220 - The URL for SystemOnTPTP, which is used by remote provers, has been |
|
221 updated. |
|
222 - The machine-learning-based filter MaSh has been optimized to take |
|
223 less time (in most cases). |
|
224 |
|
225 * SMT: reconstruction is now possible using the SMT solver veriT. |
|
226 |
222 |
227 |
223 *** ML *** |
228 *** ML *** |
224 |
|
225 * Local_Theory.reset is no longer available in user space. Regular |
|
226 definitional packages should use balanced blocks of |
|
227 Local_Theory.open_target versus Local_Theory.close_target instead, |
|
228 or the Local_Theory.subtarget(_result) combinator. Rare INCOMPATIBILITY. |
|
229 |
|
230 * Original PolyML.pointerEq is retained as a convenience for tools that |
|
231 don't use Isabelle/ML (where this is called "pointer_eq"). |
|
232 |
|
233 * ML evaluation (notably via commands 'ML' and 'ML_file') is subject to |
|
234 option ML_environment to select a named environment, such as "Isabelle" |
|
235 for Isabelle/ML, or "SML" for official Standard ML. It is also possible |
|
236 to move toplevel bindings between environments, using a notation with |
|
237 ">" as separator. For example: |
|
238 |
|
239 declare [[ML_environment = "Isabelle>SML"]] |
|
240 ML \<open>val println = writeln\<close> |
|
241 |
|
242 declare [[ML_environment = "SML"]] |
|
243 ML \<open>println "test"\<close> |
|
244 |
|
245 declare [[ML_environment = "Isabelle"]] |
|
246 ML \<open>println\<close> \<comment> \<open>not present\<close> |
|
247 |
|
248 The Isabelle/ML function ML_Env.setup defines new ML environments. This |
|
249 is useful to incorporate big SML projects in an isolated name space, and |
|
250 potentially with variations on ML syntax (existing ML_Env.SML_operations |
|
251 observes the official standard). |
|
252 |
|
253 * ML antiquotation @{master_dir} refers to the master directory of the |
|
254 underlying theory, i.e. the directory of the theory file. |
|
255 |
|
256 * ML antiquotation @{verbatim} inlines its argument as string literal, |
|
257 preserving newlines literally. The short form \<^verbatim>\<open>abc\<close> is particularly |
|
258 useful. |
|
259 |
229 |
260 * Command 'generate_file' allows to produce sources for other languages, |
230 * Command 'generate_file' allows to produce sources for other languages, |
261 with antiquotations in the Isabelle context (only the control-cartouche |
231 with antiquotations in the Isabelle context (only the control-cartouche |
262 form). The default "cartouche" antiquotation evaluates an ML expression |
232 form). The default "cartouche" antiquotation evaluates an ML expression |
263 of type string and inlines the result as a string literal of the target |
233 of type string and inlines the result as a string literal of the target |
273 |
243 |
274 The ML function Generate_File.generate writes all generated files from a |
244 The ML function Generate_File.generate writes all generated files from a |
275 given theory to the file-system, e.g. a temporary directory where some |
245 given theory to the file-system, e.g. a temporary directory where some |
276 external compiler is applied. |
246 external compiler is applied. |
277 |
247 |
|
248 * ML evaluation (notably via commands 'ML' and 'ML_file') is subject to |
|
249 option ML_environment to select a named environment, such as "Isabelle" |
|
250 for Isabelle/ML, or "SML" for official Standard ML. It is also possible |
|
251 to move toplevel bindings between environments, using a notation with |
|
252 ">" as separator. For example: |
|
253 |
|
254 declare [[ML_environment = "Isabelle>SML"]] |
|
255 ML \<open>val println = writeln\<close> |
|
256 |
|
257 declare [[ML_environment = "SML"]] |
|
258 ML \<open>println "test"\<close> |
|
259 |
|
260 declare [[ML_environment = "Isabelle"]] |
|
261 ML \<open>println\<close> \<comment> \<open>not present\<close> |
|
262 |
|
263 The Isabelle/ML function ML_Env.setup defines new ML environments. This |
|
264 is useful to incorporate big SML projects in an isolated name space, and |
|
265 potentially with variations on ML syntax (existing ML_Env.SML_operations |
|
266 observes the official standard). |
|
267 |
|
268 * ML antiquotation @{master_dir} refers to the master directory of the |
|
269 underlying theory, i.e. the directory of the theory file. |
|
270 |
|
271 * ML antiquotation @{verbatim} inlines its argument as string literal, |
|
272 preserving newlines literally. The short form \<^verbatim>\<open>abc\<close> is particularly |
|
273 useful. |
|
274 |
|
275 * Local_Theory.reset is no longer available in user space. Regular |
|
276 definitional packages should use balanced blocks of |
|
277 Local_Theory.open_target versus Local_Theory.close_target instead, or |
|
278 the Local_Theory.subtarget(_result) combinator. Rare INCOMPATIBILITY. |
|
279 |
|
280 * Original PolyML.pointerEq is retained as a convenience for tools that |
|
281 don't use Isabelle/ML (where this is called "pointer_eq"). |
|
282 |
278 |
283 |
279 *** System *** |
284 *** System *** |
280 |
285 |
281 * The command-line option "isabelle build -e" retrieves theory exports |
286 * Update to Java 11: the current long-term support version of OpenJDK. |
282 from the session build database, using 'export_files' in session ROOT |
|
283 entries. |
|
284 |
|
285 * The system option "system_heaps" determines where to store the session |
|
286 image of "isabelle build" (and other tools using that internally). |
|
287 Former option "-s" is superseded by option "-o system_heaps". |
|
288 INCOMPATIBILITY in command-line syntax. |
|
289 |
|
290 * The command-line tool "isabelle update" uses Isabelle/PIDE in |
|
291 batch-mode to update theory sources based on semantic markup produced in |
|
292 Isabelle/ML. Actual updates depend on system options that may be enabled |
|
293 via "-u OPT" (for "update_OPT"), see also $ISABELLE_HOME/etc/options |
|
294 section "Theory update". Theory sessions are specified as in "isabelle |
|
295 dump". |
|
296 |
|
297 * The command-line tool "isabelle update -u control_cartouches" changes |
|
298 antiquotations into control-symbol format (where possible): @{NAME} |
|
299 becomes \<^NAME> and @{NAME ARG} becomes \<^NAME>\<open>ARG\<close>. |
|
300 |
|
301 * Support for Isabelle command-line tools defined in Isabelle/Scala. |
|
302 Instances of class Isabelle_Scala_Tools may be configured via the shell |
|
303 function "isabelle_scala_tools" in etc/settings (e.g. of an Isabelle |
|
304 component). |
|
305 |
|
306 * Session directory $ISABELLE_HOME/src/Tools/Haskell provides some |
|
307 source modules for Isabelle tools implemented in Haskell, notably for |
|
308 Isabelle/PIDE. |
|
309 |
|
310 * Isabelle server command "use_theories" supports "nodes_status_delay" |
|
311 for continuous output of node status information. The time interval is |
|
312 specified in seconds; a negative value means it is disabled (default). |
|
313 |
|
314 * Isabelle Server command "use_theories" terminates more robustly in the |
|
315 presence of structurally broken sources: full consolidation of theories |
|
316 is no longer required. |
|
317 |
|
318 * OCaml tools and libraries are now accesed via ISABELLE_OCAMLFIND, |
|
319 which needs to point to a suitable version of "ocamlfind" (e.g. via |
|
320 OPAM, see below). INCOMPATIBILITY: settings variables ISABELLE_OCAML and |
|
321 ISABELLE_OCAMLC are no longer supported. |
|
322 |
|
323 * Support for managed installations of Glasgow Haskell Compiler and |
|
324 OCaml via the following command-line tools: |
|
325 |
|
326 isabelle ghc_setup |
|
327 isabelle ghc_stack |
|
328 |
|
329 isabelle ocaml_setup |
|
330 isabelle ocaml_opam |
|
331 |
|
332 The global installation state is determined by the following settings |
|
333 (and corresponding directory contents): |
|
334 |
|
335 ISABELLE_STACK_ROOT |
|
336 ISABELLE_STACK_RESOLVER |
|
337 ISABELLE_GHC_VERSION |
|
338 |
|
339 ISABELLE_OPAM_ROOT |
|
340 ISABELLE_OCAML_VERSION |
|
341 |
|
342 After setup, the following Isabelle settings are automatically |
|
343 redirected (overriding existing user settings): |
|
344 |
|
345 ISABELLE_GHC |
|
346 |
|
347 ISABELLE_OCAMLFIND |
|
348 |
|
349 The old meaning of these settings as locally installed executables may |
|
350 be recovered by purging the directories ISABELLE_STACK_ROOT / |
|
351 ISABELLE_OPAM_ROOT, or by resetting these variables in |
|
352 $ISABELLE_HOME_USER/etc/settings. |
|
353 |
|
354 * Update to Java 11: the latest long-term support version of OpenJDK. |
|
355 |
|
356 * System option "checkpoint" has been discontinued: obsolete thanks to |
|
357 improved memory management in Poly/ML. |
|
358 |
287 |
359 * Update to Poly/ML 5.8 allows to use the native x86_64 platform without |
288 * Update to Poly/ML 5.8 allows to use the native x86_64 platform without |
360 the full overhead of 64-bit values everywhere. This special x86_64_32 |
289 the full overhead of 64-bit values everywhere. This special x86_64_32 |
361 mode provides up to 16GB ML heap, while program code and stacks are |
290 mode provides up to 16GB ML heap, while program code and stacks are |
362 allocated elsewhere. Thus approx. 5 times more memory is available for |
291 allocated elsewhere. Thus approx. 5 times more memory is available for |
363 applications compared to old x86 mode (which is no longer used by |
292 applications compared to old x86 mode (which is no longer used by |
364 Isabelle). The switch to the x86_64 CPU architecture also avoids |
293 Isabelle). The switch to the x86_64 CPU architecture also avoids |
365 compatibility problems with Linux and macOS, where 32-bit applications |
294 compatibility problems with Linux and macOS, where 32-bit applications |
366 are gradually phased out. |
295 are gradually phased out. |
|
296 |
|
297 * System option "checkpoint" has been discontinued: obsolete thanks to |
|
298 improved memory management in Poly/ML. |
|
299 |
|
300 * System option "system_heaps" determines where to store the session |
|
301 image of "isabelle build" (and other tools using that internally). |
|
302 Former option "-s" is superseded by option "-o system_heaps". |
|
303 INCOMPATIBILITY in command-line syntax. |
|
304 |
|
305 * Session directory $ISABELLE_HOME/src/Tools/Haskell provides some |
|
306 source modules for Isabelle tools implemented in Haskell, notably for |
|
307 Isabelle/PIDE. |
|
308 |
|
309 * The command-line tool "isabelle build -e" retrieves theory exports |
|
310 from the session build database, using 'export_files' in session ROOT |
|
311 entries. |
|
312 |
|
313 * The command-line tool "isabelle update" uses Isabelle/PIDE in |
|
314 batch-mode to update theory sources based on semantic markup produced in |
|
315 Isabelle/ML. Actual updates depend on system options that may be enabled |
|
316 via "-u OPT" (for "update_OPT"), see also $ISABELLE_HOME/etc/options |
|
317 section "Theory update". Theory sessions are specified as in "isabelle |
|
318 dump". |
|
319 |
|
320 * The command-line tool "isabelle update -u control_cartouches" changes |
|
321 antiquotations into control-symbol format (where possible): @{NAME} |
|
322 becomes \<^NAME> and @{NAME ARG} becomes \<^NAME>\<open>ARG\<close>. |
|
323 |
|
324 * Support for Isabelle command-line tools defined in Isabelle/Scala. |
|
325 Instances of class Isabelle_Scala_Tools may be configured via the shell |
|
326 function "isabelle_scala_tools" in etc/settings (e.g. of an Isabelle |
|
327 component). |
|
328 |
|
329 * Isabelle Server command "use_theories" supports "nodes_status_delay" |
|
330 for continuous output of node status information. The time interval is |
|
331 specified in seconds; a negative value means it is disabled (default). |
|
332 |
|
333 * Isabelle Server command "use_theories" terminates more robustly in the |
|
334 presence of structurally broken sources: full consolidation of theories |
|
335 is no longer required. |
|
336 |
|
337 * OCaml tools and libraries are now accesed via ISABELLE_OCAMLFIND, |
|
338 which needs to point to a suitable version of "ocamlfind" (e.g. via |
|
339 OPAM, see below). INCOMPATIBILITY: settings variables ISABELLE_OCAML and |
|
340 ISABELLE_OCAMLC are no longer supported. |
|
341 |
|
342 * Support for managed installations of Glasgow Haskell Compiler and |
|
343 OCaml via the following command-line tools: |
|
344 |
|
345 isabelle ghc_setup |
|
346 isabelle ghc_stack |
|
347 |
|
348 isabelle ocaml_setup |
|
349 isabelle ocaml_opam |
|
350 |
|
351 The global installation state is determined by the following settings |
|
352 (and corresponding directory contents): |
|
353 |
|
354 ISABELLE_STACK_ROOT |
|
355 ISABELLE_STACK_RESOLVER |
|
356 ISABELLE_GHC_VERSION |
|
357 |
|
358 ISABELLE_OPAM_ROOT |
|
359 ISABELLE_OCAML_VERSION |
|
360 |
|
361 After setup, the following Isabelle settings are automatically |
|
362 redirected (overriding existing user settings): |
|
363 |
|
364 ISABELLE_GHC |
|
365 |
|
366 ISABELLE_OCAMLFIND |
|
367 |
|
368 The old meaning of these settings as locally installed executables may |
|
369 be recovered by purging the directories ISABELLE_STACK_ROOT / |
|
370 ISABELLE_OPAM_ROOT, or by resetting these variables in |
|
371 $ISABELLE_HOME_USER/etc/settings. |
367 |
372 |
368 |
373 |
369 |
374 |
370 New in Isabelle2018 (August 2018) |
375 New in Isabelle2018 (August 2018) |
371 --------------------------------- |
376 --------------------------------- |