[-- Attachment #1: Type: text/plain, Size: 1141 bytes --] The Lab for AI and Verification (laiv.uk) at Heriot-Watt University, Edinburgh is looking to fill one PhD post and one postdoctoral post. We are looking for candidates with solid knowledge of Theorem Proving and/or Functional/Logic programming, and enthusiasm to apply this knowledge in the domain of Artificial Intelligence. The PhD post is for 4 years, starting in October 2022. It covers full stipend and PhD fees and is sponsored by the UKRI (ukri.org) and Schlumberger Cambridge (slb.com). The company will provide additional training and support during the PhD studies. This post needs to be filled in as soon as possible. We are also looking to employ a postdoctoral researcher for a 6-12 months project to formalise Criminal law in the Functional Language Catala <https://catala-lang.org/>. Formalising criminal law for autonomous cars is of particular interest. This project will be in collaboration with Jonathan Protzenko, Microsoft Research and the School of Law, Edinburgh University. This project has a flexible starting date. Please direct all queries to Ekaterina Komendantskaya (ek19@hw.ac.uk) Best wishes, Ekaterina [-- Attachment #2: Type: text/html, Size: 6477 bytes --]
[-- Attachment #1: Type: text/plain, Size: 20463 bytes --] Hello Here is the latest OCaml Weekly News, for the week of July 19 to 26, 2022. Table of Contents ───────────────── Help w. my first GADT : unwrapping Sqlite3.Data.t DocuLib 3.1.2 and MetaDB 1.0.2 now on OPAM dune 3.4.0 OCaml 5.0, first normal alpha release Other OCaml News Old CWN Help w. my first GADT : unwrapping Sqlite3.Data.t ═════════════════════════════════════════════════ Archive: <https://discuss.ocaml.org/t/help-w-my-first-gadt-unwrapping-sqlite3-data-t/10202/1> Philippe Strauss asked ────────────────────── I would like to convert sqlite3-ocaml returns from Sqlite3.Data.t array to plain ocaml types in a tuple. I guess unwrapping the Data.t can be done using a GADT, here's my very very first attempt: ┌──── │ (* simulate Sqlite3.Data.t *) │ │ type t = │ | NONE │ | NULL │ | INT of int64 │ | FLOAT of float │ | TEXT of string │ | BLOB of string ;; │ │ (* a simple GADT to unwrap Sqlite3.Data.t *) │ │ type _ dbval = │ | INT : int64 -> int64 dbval │ | FLOAT : float -> float dbval │ | TEXT : string -> string dbval │ | BLOB : string -> string dbval │ | NONE | NULL ;; │ │ let unwrap_data : type a. a dbval -> a = fun dbval -> │ match dbval with │ | INT x -> x │ | FLOAT x -> x │ | TEXT str -> str │ | BLOB str -> str ;; │ │ let tuple_of_array4 (arr: t array) = │ assert (Array.length arr = 4) ; │ (unwrap_data arr.(0), unwrap_data arr.(1), unwrap_data arr.(2), unwrap_data arr.(3)) ;; └──── Compilation fails with this typing error: ┌──── │ File "database.ml", line 233, characters 17-24: │ 233 | (unwrap_data arr.(0), unwrap_data arr.(1), unwrap_data arr.(2), unwrap_data arr.(3)) ;; │ ^^^^^^^ │ Error: This expression has type t but an expression was expected of type │ 'a dbval └──── What am I doing wrong? I need to make type t compatible with type 'a dbval. Thanks in advance. octachron replied ───────────────── You cannot make the type `t' and `'a dbval' compatible, there are different types. A very important point to keep in mind with GADTs is that one cannot create type-level information from dynamical values. In other words, there are no functions of type ~ x : t -> f(x) dbval~that will infer the type of its return from the value of its argument in OCaml. Thus the type of the final result must come from your code source rather than from the dynamical data. For instance, you can define constructor from the type `t' to the right `dbval' type: ┌──── │ exception Type_error │ │ let int: t -> _ dbval = function │ | INT x -> INT x │ | _ -> raise Type_error │ │ let float: t -> _ dbval = function │ | FLOAT x -> FLOAT x │ | _ -> raise Type_error └──── Then if you know the type of the tuple, you can write it as: ┌──── │ let tuple_of_array4 (arr: t array) = │ assert (Array.length arr = 4) ; │ int arr.(0), int arr.(1), int arr.(2), int arr.(3) └──── or possibly as ┌──── │ let int4 = int, int, int, int │ let tuple (a,b,c,d) arr = │ assert (Array.length arr = 4) ; │ a arr.(0), b arr.(1), c arr.(2), d arr.(3) └──── There are more complex alternatives based on type witness, that allow to implement a form of static matching over the dynamical type of data, but the core idea that the types are always present in the source code in some way is the same. Philippe Strauss then said ────────────────────────── Oh I didn't noticed it would be dynamical typing! I'm too used to ppx (and previously camlp4) written db abstraction layer! I'm simply replacing sqlexpr by plain sqlite3-ocaml in some existing code of mine. sqlexpr quick doco: <https://github.com/mfp/ocaml-sqlexpr> But I can live with a Data.t array! Yawar Amin then added ───────────────────── Everybody has their favourite way of wrapping SQLite. Here's mine (no PPX): <https://github.com/yawaramin/ocaml_sql_query> It has a little data translation layer to convert from `Data.t' array to the desired return type. DocuLib 3.1.2 and MetaDB 1.0.2 now on OPAM ══════════════════════════════════════════ Archive: <https://discuss.ocaml.org/t/doculib-3-1-2-and-metadb-1-0-2-now-on-opam/10204/1> nguermond announced ─────────────────── I'm pleased to announce the release of `doculib' and `metadb', now available on OPAM. *DocuLib* is a GUI for document management, particularly for all the textbooks and articles you've accumulated but know you'll never read :thinking:. The idea of DocuLib is to keep track of metadata of files stored across multiple libraries on your file system in such a way that you can move, reorganize, or rename a file without losing your metadata. You can additionally lookup metadata on `openlibrary.org' or `semanticscholar.org'. DocuLib will also warn about missing and duplicate files. Stored metadata presently includes author, title, year, tags, and DOI/ISBN. <https://global.discourse-cdn.com/standard11/uploads/ocaml/original/2X/f/fa064cd32bce6e52722d30047d8e0ef21fa09684.png> For more screenshots and details: <https://github.com/nguermond/doculib> *Metadb* is the JSON database for manipulating file metadata underlying DocuLib, in hopes that it may be useful somewhere else. Data is stored in the following way: ┌──── │ path/to/library │ |- .metadata │ |- ./foo.txt.json │ |- ./blah/bar.pdf.json │ |- ./foobar.pdf.json │ |- ./foo.txt │ |- ./blah/bar.pdf │ |- ./foobar.pdf └──── For documentation: <https://github.com/nguermond/metadb> dune 3.4.0 ══════════ Archive: <https://discuss.ocaml.org/t/ann-dune-3-4-0/10211/1> Etienne Millon announced ──────────────────────── On behalf of the dune team, I’m pleased to announce the release of version 3.4.0. Bug fixes, a couple new features, better hints and error messages - I won't restate what's in the changelog below. Thanks to everyone involved in this release! • Make `dune describe' correctly handle overlapping implementations for virtual libraries (#5971, fixes #5747, @esope) • Building the `@check' alias should make sure the libraries and executables don't have dependency cycles (#5892, @rgrinberg) • [ctypes] Add support for the `errno' parameter using the `errno_policy' field in the ctypes settings. (#5827, @droyo) • Fix `dune coq top' when it is invoked on files from a subdirectory of the directory containing the associated stanza (#5784, fixes #5552, @ejgallego, @rlepigre, @Alizter) • Fix hint when an invalid module name is found. (#5922, fixes #5273, @emillon) • The `(cat)' action now supports several files. (#5928, fixes #5795, @emillon) • Dune no longer uses shimmed `META' files for OCaml 5.x, solely using the ones installed by the compiler. (#5916, @dra27) • Fix handling of the `(deps)' field in `(test)' stanzas when there is an `.expected' file. (#5952, #5951, fixes #5950, @emillon) • Ignore insignificant filesystem events. This stops RPC in watch mode from flashing errors on insignificant file system events such as changes in the `.git/' directory. (#5953, @rgrinberg) • Fix parsing more error messages emitted by the OCaml compiler. In particular, messages where the excerpt line number started with a blank character were skipped. (#5981, @rgrinberg) • env stanza: warn if some rules are ignored because they appear after a wildcard rule. (#5898, fixes #5886, @emillon) • On Windows, XDG_CACHE_HOME is taken to be the `FOLDERID_InternetCache' if unset, and XDG_CONFIG_HOME and XDG_DATA_HOME are both taken to be `FOLDERID_LocalAppData' if unset. (#5943, fixes #5808, @nojb) Etienne Millon then added ───────────────────────── This broke 32-bit cygwin installations, so 3.4.1 was released with a fix. OCaml 5.0, first normal alpha release ═════════════════════════════════════ Archive: <https://discuss.ocaml.org/t/ocaml-5-0-first-normal-alpha-release/10216/1> octachron announced ─────────────────── The stabilisation of OCaml 5.0 has been progressing well during the last month. We have thus released a first normal alpha release of OCaml 5.0.0 to help fellow hackers join us early in our bug hunting and opam ecosystem fixing fun (see below for the installation instructions). You can follow the progress in stabilising the opam ecosystem on <https://github.com/ocaml/opam-repository/issues/21526> If you find any bugs, please report them here: <https://github.com/ocaml/ocaml/issues> Compared to the zeroth alpha release, this alpha release restores the support for the bytecode debugger, and integrates a change of type in the FFI API that might trigger some warnings in FFI code. We also have a change in the installed files: the compiler distributes now its own META files rather than relying on either findlib or dune to provide those files. This should simplify the tasks of both tools in future version. Note there are still some changes expected in the Effect module before the next candidate release. Generally, both the Effect and Domain modules are still experimental and might change API even during the beta releases. If you are interested by the ongoing list of bug fixes, the updated change log for OCaml 5.0.0 is available at: <https://github.com/ocaml/ocaml/blob/5.0/Changes> A short summary of the changes since the zeroth alpha release is also available below. Installation instructions ╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌ The base compiler can be installed as an opam switch with the following commands on opam 2.1: ┌──── │ opam update │ opam switch create 5.0.0~alpha1 └──── For previous version of opam, the switch creation command line is slightly more verbose: ┌──── │ opam update │ opam switch create 5.0.0~alpha1 --repositories=default,beta=git+https://github.com/ocaml/ocaml-beta-repository.git └──── If you want to test this version, it is strongly advised to install the alpha opam repository <https://github.com/kit-ty-kate/opam-alpha-repository> with ┌──── │ opam repo add alpha git+https://github.com/kit-ty-kate/opam-alpha-repository.git └──── You can check that the alpha repository has been correctly installed with ┌──── │ $ opam repo │ │ <><> Repository configuration for switch 5.0.0~alpha1 <><><><><><><><><><><><><> │ 1 alpha git+https://github.com/kit-ty-kate/opam-alpha-repository.git │ 2 default https://opam.ocaml.org └──── This alpha repository contains various fixes in the process of being upstreamed which vastly increases the number of opam packages currently compatible with OCaml 5.0.0 . If you want to tweak the configuration of the compiler, you can switch to the option variant with: ┌──── │ opam update │ opam switch create <switch_name> ocaml-variants.5.0.0~alpha1+options <option_list> └──── where `option_list' is a comma separated list of `ocaml-option-*' packages. For instance, for a flambda and no-flat-float-array switch: ┌──── │ opam switch create 5.0.0~alpha1+flambda+nffa ocaml-variants.5.0.0~alpha1+options ocaml-option-flambda │ ocaml-option-no-flat-float-array └──── The command line above is slightly more complicated for opam version anterior to 2.1: ┌──── │ opam update │ opam switch create <switch_name> --packages=ocaml-variants.5.0.0~alpha1+options,<option_list> │ --repositories=default,beta=git+https://github.com/ocaml/ocaml-beta-repository.git └──── In both cases, all available options can be listed with `opam search ocaml-option'. The source code for the alpha is also available at these addresses: • <https://github.com/ocaml/ocaml/archive/5.0.0-alpha1.tar.gz> • <https://caml.inria.fr/pub/distrib/ocaml-5.0/ocaml-5.0.0~alpha1.tar.gz> Changes since the zeroth alpha release: ╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌ Runtime system: ┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄ • [#11400]: Runtime events counters fixes Fixes mismatch between OCaml and C APIs, removes events from 4.x that are not present in the 5.0 GC and adds some missing probes. (Sadiq Jaffer, review by Gabriel Scherer, Florian Angeletti) • [#11368]: Runtime events buffer size OCAMLRUNPARAMS fix The runtime events buffer size can now be set via the 'e' OCAMLRUNPARAM. This is previously mistakenly enabled/disabled tracing instead. (Sadiq Jaffer, review by KC Sivaramakrishnan, David Allsopp, Damien Doligez) • [#11304]: Fix data race on Windows file descriptors (Olivier Nicole and Xavier Leroy, review by Xavier Leroy, David Allsopp, and Sadiq Jaffer) • *breaking change* [#11337]: pass 'flags' metadata to root scanners, to optimize stack scanning in the bytecode interpreter. Changes the interface of user-provided root-scanning hooks. (Gabriel Scherer, review by Xavier Leroy, Guillaume Munch-Maccagnoni, Sadiq Jaffer and Tom Kelly) • [#11144]: Restore frame-pointers support for amd64 (Fabrice Buoro, review by Frederic Bour and KC Sivaramakrishnan) • *breaking change* [#11255]: in the C interface, `&Field(v, i)' now has type `volatile value *' instead of `value *' in OCaml 4. This makes the memory model for mixed OCaml/C code better defined, but can cause warnings or type errors in user C code. (KC Sivaramakrishnan, review by Xavier Leroy, Gabriel Scherer and Guillaume Munch-Maccagnoni, additional discussions with Stephen Dolan and Luc Maranget) [#11400] <https://github.com/ocaml/ocaml/issues/11400> [#11368] <https://github.com/ocaml/ocaml/issues/11368> [#11304] <https://github.com/ocaml/ocaml/issues/11304> [#11337] <https://github.com/ocaml/ocaml/issues/11337> [#11144] <https://github.com/ocaml/ocaml/issues/11144> [#11255] <https://github.com/ocaml/ocaml/issues/11255> Standard library: ┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄ • [#10867], +[#11345]: Remove deprecated values: …, the infix operator (.[ ]<-). (Nicolás Ojeda Bär, review by Damien Doligez) • [#11309], [#11424], [#11427]: Add Domain.recommended_domain_count. (Christiano Haesbaert, Konstantin Belousov, review by David Allsopp, KC Sivaramakrishnan, Gabriel Scherer, Nicolas Ojeda Bar) [#10867] <https://github.com/ocaml/ocaml/issues/10867> [#11345] <https://github.com/ocaml/ocaml/issues/11345> [#11309] <https://github.com/ocaml/ocaml/issues/11309> [#11424] <https://github.com/ocaml/ocaml/issues/11424> [#11427] <https://github.com/ocaml/ocaml/issues/11427> Tools: ┄┄┄┄┄┄ • [#11065]: Port the bytecode debugger to 5.0, adding support for effect handlers. (Damien Doligez and fabbing, review by fabbing and Xavier Leroy) • [#11382]: OCamlmktop use a new initialization module "OCamlmktop_init" to preserve backward-compatibility with user-module provided modules that install toplevel printers. (Florian Angeletti, review by Gabriel Scherer and David Allsopp) [#11065] <https://github.com/ocaml/ocaml/issues/11065> [#11382] <https://github.com/ocaml/ocaml/issues/11382> Installation: ┄┄┄┄┄┄┄┄┄┄┄┄┄ • [#11007], [#11399]: META files for the stdlib, compiler-libs and other libraries (unix, dynlink, str, runtime_events, threads, ocamldoc) are now installed along with the compiler. (David Allsopp, Florian Angeletti, Nicolás Ojeda Bär and Sébastien Hinderer, review by Daniel Bünzli, Kate Deplaix, Anil Madhavapeddy and Gabriel Scherer) [#11007] <https://github.com/ocaml/ocaml/issues/11007> [#11399] <https://github.com/ocaml/ocaml/issues/11399> Bug fixes: ┄┄┄┄┄┄┄┄┄┄ • [#10768], [#11340]: Fix typechecking regression when combining first class modules and GADTs. (Jacques Garrigue, report by François Thiré, review by Matthew Ryan) • [#10790]: don't drop variance and injectivity annotations when pretty printing `with' constraints (for example, `with type +!'a t = ...'). (Florian Angeletti, report by Luke Maurer, review by Matthew Ryan and Gabriel Scherer) • [#11289], [#11405]: fix some leaks on systhread termination (Fabrice Buoro, Enguerrand Decorne, Gabriel Scherer, review by Xavier Leroy and Florian Angeletti, report by Romain Beauxis) • [#11314], [#11416]: fix non-informative error message for module inclusion (Florian Angeletti, report by Thierry Martinez, review by Gabriel Scherer) • [#11358], [#11379]: Refactor the initialization of bytecode threading, This avoids a "dangling pointer" warning of GCC 12.1. (Xavier Leroy, report by Armaël Guéneau, review by Gabriel Scherer) • [#11387], module type with constraints no longer crash the compiler in presence of both shadowing warnings and the `-bin-annot' compiler flag. (Florian Angeletti, report by Christophe Raffalli, review by Gabriel Scherer) [#10768] <https://github.com/ocaml/ocaml/issues/10768> [#11340] <https://github.com/ocaml/ocaml/issues/11340> [#10790] <https://github.com/ocaml/ocaml/issues/10790> [#11289] <https://github.com/ocaml/ocaml/issues/11289> [#11405] <https://github.com/ocaml/ocaml/issues/11405> [#11314] <https://github.com/ocaml/ocaml/issues/11314> [#11416] <https://github.com/ocaml/ocaml/issues/11416> [#11358] <https://github.com/ocaml/ocaml/issues/11358> [#11379] <https://github.com/ocaml/ocaml/issues/11379> [#11387] <https://github.com/ocaml/ocaml/issues/11387> Other OCaml News ════════════════ From the ocaml.org blog ─────────────────────── Here are links from many OCaml blogs aggregated at [the ocaml.org blog]. • [Tarides is on the Wavestone Radar!] [the ocaml.org blog] <https://ocaml.org/blog/> [Tarides is on the Wavestone Radar!] <https://tarides.com/blog/2022-07-19-tarides-is-on-the-wavestone-radar> Old CWN ═══════ If you happen to miss a CWN, you can [send me a message] and I'll mail it to you, or go take a look at [the archive] or the [RSS feed of the archives]. If you also wish to receive it every week by mail, you may subscribe [online]. [Alan Schmitt] [send me a message] <mailto:alan.schmitt@polytechnique.org> [the archive] <https://alan.petitepomme.net/cwn/> [RSS feed of the archives] <https://alan.petitepomme.net/cwn/cwn.rss> [online] <http://lists.idyll.org/listinfo/caml-news-weekly/> [Alan Schmitt] <https://alan.petitepomme.net/> [-- Attachment #2: Type: text/html, Size: 36788 bytes --]
[-- Attachment #1: Type: text/plain, Size: 1928 bytes --] ** Sincere apologies if you receive multiple copies of this CFP ** ** Please forward to anyone who might be interested ** ** Hybrid conference: authors will be able to present their papers online ** *Springer* *2022 4th International Conference on Soft Computing and its Engineering Applications (icSoftComp2022)* https://www.charusat.ac.in/icSoftComp2022/index.php Charotar University of Science and Technology (CHARUSAT) Changa, India December 09-10, 2022 *[Hybrid mode]* Dear Dr. / Prof. / Emerging or accomplished research scholar / Prospective author, I am pleased to inform you that the 4th 2022 International Conference on Soft Computing and its Engineering Applications (icSoftComp2022) will be held at Charotar University of Science and Technology (CHARUSAT), Changa, India, from December 9–10, 2022. Conference proceedings by *Springer CCIS Series* (Scopus indexed) Conference series link: https://link.springer.com/conference/icsoftcomp We are now open for technical paper submission, proposals for workshops/special sessions, and proposals for tutorials. The regular paper submission deadline is July 31, 2022. The conference will have keynote lectures delivered by eminent researchers across the globe, industry briefings and technology demonstrations from practitioners, and tutorials on key/emerging areas in the field of Soft computing and AI. This is a great opportunity to meet the research community working in the area of Soft computing and AI. Warm regards and thanking you in advance, K. K. Patel, Ph.D., Email: kanupatel.mca@charusat.ac.in Cell#: +91-820 010 3724 *Charotar University of Science and Technology (CHARUSAT)* *(Center of Excellence by Govt. of Gujarat)* *(Accredited "**A+**" grade by NAAC, GoI)* *Changa, India* *------------------------------* [-- Attachment #2: Type: text/html, Size: 16594 bytes --]
[-- Attachment #1: Type: text/plain, Size: 3847 bytes --] - We apologize if you receive multiple copies of this CFC. - We appreciate your help to forward this CFC to your friends & email lists. *===========================Call for chapters=====================* Dear colleague, We are in the process of coming up with a volume titled *“Applications of Remote Sensing Techniques for Sustainable Security ” *to be published by Springer (proposal is initially communicated, awaiting for final approval) at *the end of 2022.* We cordially invite you to contribute a chapter. The full chapter is due later this year but for now, I will just need the following: - Author List - Chapter Title - Abstract (between 2 and 6 sentences) The last deadline to submit your short abstract directly at lahby@ieee.org is *July 25th, 2022 (Firm Deadline)* *SCOPE:* With the advent of the big data era in remote sensing, artificial intelligence (AI) has spread to almost every corner of various remote sensing applications. In many cases, the characteristics of remote sensing big data, such as multi-source, multi-scale, high-dimensional, dynamic state, isomeric, and non-linear features, etc., are well learned by advanced AI algorithms. Data-driven methods, especially deep learning models, have achieved state-of-the-art results for most remote sensing image processing tasks (object detection, segmentation, etc.) and some inverse remote sensing tasks (atmosphere, vegetation, etc.). Using large labeled datasets, we can often make very accurate predictions on remote sensing data. However, current data-driven AI has not provided us with clear physical or cognitive meaning of remote sensing data's internal features and representations. Most deep learning techniques do not reveal how data features take effect and why predictions are made. Remote sensing data has exacerbated the problem of opacity and inexplicability of current AI. It becomes a barrier between the latest AI techniques and some remote sensing applications. Many scientists in hydrological remote sensing, atmospheric remote sensing, oceanic remote sensing, etc. do not even believe the results of deep learning predictions, as these communities are more inclined to believe models with clear physical meaning. This forthcoming book seeks contributions to remote sensing data. In particular, we are looking for research papers on applications of remote sensing in many fields of smart cities such as smart transportation, smart agriculture, and smart Environment. *NB: *There are no submission or acceptance fees for manuscripts submitted to this book for publication The tentative structure of the book *(but are not limited to the following Parts*) is mentioned below:. *Part 1: Theoretical and Applied Aspects of Remote Sensing* - Chapter 1. Remote Sensing Techniques State-of-the-Art - Chapter 2. Hyperspectral remote sensing applications: State-of-the-Art - Chapter 3. Smart cities: State-of-the-Art *Part 2: Remote sensing and Smart cities Applications* - Chapter 4. Smart Agriculture Security - Chapter 5. Smart Transportation Security - Chapter 6. Smart Environment security - Chapter 7. Smart Buildings security; - Chapter 8. Smart Economy security *Part 3: Remote sensing and technologies* - Chapter 9. Artificial Intelligence for Enabled Remote Sensing - Chapter 10. machine learning for Enabled Remote Sensing - Chapter 11. Deep Learning for Enabled Remote Sensing - Chapter 12. XAI for Enabled Remote Sensing - Chapter 13. Big Data for Enabled Remote Sensing - Chapter 14. Blockchain for Enabled remote sensing *Part 4: Futuristic Ideas* - Chapter 15. Futuristic Ideas for Remote sensing Best regards M. LAHBY <https://www.google.com/gmail/about/policy/> <https://www.google.com/> [-- Attachment #2: Type: text/html, Size: 16199 bytes --]
[-- Attachment #1: Type: text/plain, Size: 7665 bytes --] Dear OCaml users, The stabilisation of OCaml 5.0 has been progressing well during the last month. We have thus released a first normal alpha release of OCaml 5.0.0 to help fellow hackers join us early in our bug hunting and opam ecosystem fixing fun (see below for the installation instructions). You can follow the progress in stabilising the opam ecosystem on https://github.com/ocaml/opam-repository/issues/21526 If you find any bugs, please report them here: https://github.com/ocaml/ocaml/issues Compared to the zeroth alpha release, this alpha release restores the support for the bytecode debugger, and integrates a change of type in the FFI API that might trigger some warnings in FFI code. We also have a change in the installed files: the compiler distributes now its own META files rather than relying on either findlib or dune to provide those files. This should simplify the tasks of both tools in future version. Note there are still some changes expected in the Effect module before the next candidate release. Generally, both the Effect and Domain modules are still experimental and might change API even during the beta releases. If you are interested by the ongoing list of bug fixes, the updated change log for OCaml 5.0.0 is available at: https://github.com/ocaml/ocaml/blob/5.0/Changes A short summary of the changes since the zeroth alpha release is also available below. Happy hacking, Florian Angeletti for the OCaml team. Installation instructions ------------------------- The base compiler can be installed as an opam switch with the following commands on opam 2.1: opam update opam switch create 5.0.0~alpha1 For previous version of opam, the switch creation command line is slightly more verbose: opam update opam switch create 5.0.0~alpha1 --repositories=default,beta=git+https://github.com/ocaml/ocaml-beta-repository.git If you want to test this version, it is strongly advised to install the alpha opam repository https://github.com/kit-ty-kate/opam-alpha-repository with opam repo add alpha git+https://github.com/kit-ty-kate/opam-alpha-repository.git You can check that the alpha repository has been correctly installed with $ opam repo <><> Repository configuration for switch 5.0.0~alpha1 <><><><><><><><><><><><><> 1 alpha git+https://github.com/kit-ty-kate/opam-alpha-repository.git 2 default https://opam.ocaml.org This alpha repository contains various fixes in the process of being upstreamed which vastly increases the number of opam packages currently compatible with OCaml 5.0.0 . If you want to tweak the configuration of the compiler, you can switch to the option variant with: opam update opam switch create <switch_name> ocaml-variants.5.0.0~alpha1+options <option_list> where <option_list> is a comma separated list of ocaml-option-* packages. For instance, for a flambda and no-flat-float-array switch: opam switch create 5.0.0~alpha1+flambda+nffa ocaml-variants.5.0.0~alpha1+options ocaml-option-flambda ocaml-option-no-flat-float-array The command line above is slightly more complicated for opam version anterior to 2.1: opam update opam switch create <switch_name> --packages=ocaml-variants.5.0.0~alpha1+options,<option_list> --repositories=default,beta=git+https://github.com/ocaml/ocaml-beta-repository.git In both cases, all available options can be listed with "opam search ocaml-option". The source code for the alpha is also available at these addresses: https://github.com/ocaml/ocaml/archive/5.0.0-alpha1.tar.gz https://caml.inria.fr/pub/distrib/ocaml-5.0/ocaml-5.0.0~alpha1.tar.gz Changes since the zeroth alpha release: ----------------------------------------------------- ### Runtime system: - #11400: Runtime events counters fixes Fixes mismatch between OCaml and C APIs, removes events from 4.x that are not present in the 5.0 GC and adds some missing probes. (Sadiq Jaffer, review by Gabriel Scherer, Florian Angeletti) - #11368: Runtime events buffer size OCAMLRUNPARAMS fix The runtime events buffer size can now be set via the 'e' OCAMLRUNPARAM. This is previously mistakenly enabled/disabled tracing instead. (Sadiq Jaffer, review by KC Sivaramakrishnan, David Allsopp, Damien Doligez) - #11304: Fix data race on Windows file descriptors (Olivier Nicole and Xavier Leroy, review by Xavier Leroy, David Allsopp, and Sadiq Jaffer) * #11337: pass 'flags' metadata to root scanners, to optimize stack scanning in the bytecode interpreter. Changes the interface of user-provided root-scanning hooks. (Gabriel Scherer, review by Xavier Leroy, Guillaume Munch-Maccagnoni, Sadiq Jaffer and Tom Kelly) - #11144: Restore frame-pointers support for amd64 (Fabrice Buoro, review by Frederic Bour and KC Sivaramakrishnan) * #11255: in the C interface, `&Field(v, i)` now has type `volatile value *` instead of `value *` in OCaml 4. This makes the memory model for mixed OCaml/C code better defined, but can cause warnings or type errors in user C code. (KC Sivaramakrishnan, review by Xavier Leroy, Gabriel Scherer and Guillaume Munch-Maccagnoni, additional discussions with Stephen Dolan and Luc Maranget) ### Standard library: + #10867, +#11345: Remove deprecated values: …, the infix operator (.[]<-). (Nicolás Ojeda Bär, review by Damien Doligez) - #11309, #11424, #11427: Add Domain.recommended_domain_count. (Christiano Haesbaert, Konstantin Belousov, review by David Allsopp, KC Sivaramakrishnan, Gabriel Scherer, Nicolas Ojeda Bar) ### Tools: - #11065: Port the bytecode debugger to 5.0, adding support for effect handlers. (Damien Doligez and @fabbing, review by @fabbing and Xavier Leroy) - #11382: OCamlmktop use a new initialization module "OCamlmktop_init" to preserve backward-compatibility with user-module provided modules that install toplevel printers. (Florian Angeletti, review by Gabriel Scherer and David Allsopp) ### Installation: - #11007, #11399: META files for the stdlib, compiler-libs and other libraries (unix, dynlink, str, runtime_events, threads, ocamldoc) are now installed along with the compiler. (David Allsopp, Florian Angeletti, Nicolás Ojeda Bär and Sébastien Hinderer, review by Daniel Bünzli, Kate Deplaix, Anil Madhavapeddy and Gabriel Scherer) ### Bug fixes: - #10768, #11340: Fix typechecking regression when combining first class modules and GADTs. (Jacques Garrigue, report by François Thiré, review by Matthew Ryan) - #10790: don't drop variance and injectivity annotations when pretty printing `with` constraints (for example, `with type +!'a t = ...`). (Florian Angeletti, report by Luke Maurer, review by Matthew Ryan and Gabriel Scherer) - #11289, #11405: fix some leaks on systhread termination (Fabrice Buoro, Enguerrand Decorne, Gabriel Scherer, review by Xavier Leroy and Florian Angeletti, report by Romain Beauxis) - #11314, #11416: fix non-informative error message for module inclusion (Florian Angeletti, report by Thierry Martinez, review by Gabriel Scherer) - #11358, #11379: Refactor the initialization of bytecode threading, This avoids a "dangling pointer" warning of GCC 12.1. (Xavier Leroy, report by Armaël Guéneau, review by Gabriel Scherer) - #11387, module type with constraints no longer crash the compiler in presence of both shadowing warnings and the `-bin-annot` compiler flag. (Florian Angeletti, report by Christophe Raffalli, review by Gabriel Scherer) [-- Attachment #2: Type: text/html, Size: 8577 bytes --]
[-- Attachment #1: Type: text/plain, Size: 4963 bytes --] [Apologies, if you receive multiple copies of this CFC] Dear Colleagues/Friends/Students/Fellows, Please find a Call for Chapters below. The deadline is short. We are looking for a few more high-quality chapters to be added to this book's current content. The deadline for submission of proposal is: *July, 31th, 2022.* Those who have got their proposals accepted or chapters submitted may ignore this and encourage others to contribute only high-quality chapters. Regards, M. LAHBY Editor ==================================================================================================== *Call for Book Chapters (Free publication)* *Edited Book: Advanced AI and Internet of Health Things Technologies for Combating Pandemic* *Publication in "Internet of Things <https://www.springer.com/series/11636>", by Springer Ranked Q1 and indexed by (Scopus)* *Call for Chapters: **Call for Chapters Link <https://sites.google.com/view/ioht-pandemic-book/home-page?authuser=0>* *Submission link: Submission link <https://easychair.org/conferences/?conf=2a2ih2tcp>* *Chapter Submission Deadline: July 31th, 2022 * ----------------------------------------------------------------------------- Editors of the Springer Book "*Advanced AI and Internet of Health Things Technologies for Combating Pandemic*" invites submissions containing Original, High Quality Ideas that are relevant to the SCOPE OF THE BOOK. The chapter proposal may kindly be sent in Latex or Word format. EXPERIENCED Authors and Contributors in the field of Artificial Intelligence and Internet of Health Things Technologies for combating Pandemic may kindly submit their chapter. All chapter proposals that conform to submission guidelines will be peer reviewed and evaluated based on originality, technical and research content, depth, correctness, relevance to scope of the book and readability. For details the following website may kindly be referred: ------------------------------------------------------ https://sites.google.com/view/ioht-pandemic-book/home-page?authuser=0 *Topics of Interest:* This book targets a mixed audience of researchers, academics and professionals from different communities to share and exchange new ideas, approaches, theories and practices to resolve the challenging issues associated with the leveraging of combating Pandemic with computational intelligence techniques and Internet of Health Things. Therefore, the suggested topics of interest for this book include, but are not limited to: - Machine Learning for COVID-19 or other pandemic - Deep Learning for COVID-19 or other pandemic - Big Data for COVID-19 or other pandemic - Blockchain technology for COVID-19 or other pandemic - IoT solutions for COVID-19 or other pandemic - Edge computing for COVID-19 or other pandemic - Software-Defined Networking (SDN) solutions for COVID-19 or other pandemic - 5G/6G for combating the COVID-19 or other pandemic - Telemedicine and mHealth solutions - Data mining of medical patient records - Internet of Medical Things (IoMT) for COVID-19 or other pandemic - Security and privacy issues - Cloud Computing Security for COVID-19 or other pandemic - Smart city for combating the COVID-19COVID-19 or other pandemic - Data model for COVID-19 or other pandemic - Mobile technology solutions for COVID-19 or other pandemic *Submission Procedure:* Authors are invited to submit their full chapters by *July 31, 2022*. Manuscripts submitted for the book must be original, must not be previously published or currently under review anywhere. Submitted manuscripts should respect the standard guidelines of the Springer book chapter format. Manuscripts must be prepared using Latex, or Word, and according to the Springer requirements that can be downloaded from the (*link <https://www.springer.com/de/authors-editors/book-authors-editors/resources-guidelines/book-manuscript-guidelines/manuscript-preparation/5636>*) and the Chapter should contain in between *15-24 pages*. Manuscripts that do not follow the formatting rules will be rejected without review. Prospective authors should send their manuscripts electronically through the easychair submission system as mentioned below: *Submission Link:* https://easychair.org/conferences/?conf=2a2ih2tcp *NB:* There are *no submission or acceptance fees* for manuscripts submitted to this book publication. All manuscripts are accepted based on a double-blind peer review editorial process. *Abstracting and Indexing:* The accepted chapters will be published in "*Internet of Things <https://www.springer.com/series/11636>*" by *Springer*, *Rank= Q1*, highly indexed in *Scopus, EI, DBPL, etc*… *Contact: * For questions regarding the book, please contact the *Lead volume editor*: *Mohamed Lahby*: lahby <mlahby@gmail.co>@ieee.org Best regards [-- Attachment #2: Type: text/html, Size: 12946 bytes --]
[-- Attachment #1: Type: text/plain, Size: 1357 bytes --] ** Sincere apologies if you receive multiple copies of this CFP ** ** Please forward to anyone who might be interested ** ** Hybrid conference: authors will be able to present their papers online ** Dear Prospective Author(s), We are happy to inform you that we are organizing the *4th 2022 International Conference on Soft Computing and its Engineering Applications (icSoftComp2022)* during December 09-10, 2022 at CHARUSAT, Changa, India. Conference proceedings by *Springer CCIS Series* (Scopus indexed) Conference series link: https://link.springer.com/conference/icsoftcomp The conference will have keynote lectures delivered by eminent researchers across the globe, industry briefings and technology demonstrations from practitioners, and tutorials on key/emerging areas in the field of Soft computing. This is a great opportunity to meet the research community working in the area of Soft computing. The regular paper submission deadline is July 31, 2022. More details are at https://www.charusat.ac.in/icSoftComp2022/index.php Warm regards and thanking you in advance, K. K. Patel, Ph.D., Charotar University of Science & Technology (CHARUSAT) (Center of Excellence by Govt. of Gujarat) (Accredited "*A+*" grade by NAAC, GoI) Cell#: +91-820 010 3724 https://www.charusat.ac.in/icSoftComp2022/ *------------------------------* [-- Attachment #2: Type: text/html, Size: 9833 bytes --]
[-- Attachment #1: Type: text/plain, Size: 18095 bytes --] Hello Here is the latest OCaml Weekly News, for the week of July 12 to 19, 2022. Table of Contents ───────────────── Gopcaml-mode and Gopcaml-mode merlin (0.0.6) - Phoenix release (Support for OCaml 4.14.0!) Sandmark Nightly - Benchmarking as a Service OCamlFormat Web Configurator Jane Street is Hiring Front End Engineers BAP 2.5.0 Release Why I used OCaml to developed a utility to download Jira items Liquidsoap 2.1.0 Vim now highlights types, feedback welcome Other OCaml News Old CWN Gopcaml-mode and Gopcaml-mode merlin (0.0.6) - Phoenix release (Support for OCaml 4.14.0!) ══════════════════════════════════════════════════════════════════════════════════════════ Archive: <https://discuss.ocaml.org/t/ann-gopcaml-mode-and-gopcaml-mode-merlin-0-0-6-phoenix-release-support-for-ocaml-4-14-0/10164/1> Kiran Gopinathan announced ────────────────────────── Like the *phoenix*, /Gopcaml-mode/ *rises* again from the ashes!… …this time with support for OCaml 4.14.0 and OCaml 4.13.0 (by popular demand) See the [original release post ] for detailed instructions on how you can install it. [original release post ] <https://discuss.ocaml.org/t/introducing-gopcaml-mode-structural-ocaml-editing/5310> Screenshots (if you haven't seen them before) ╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌ <https://global.discourse-cdn.com/standard11/uploads/ocaml/original/2X/a/abc1ff0b5dbbefe2beb150f2c09148cb5472ece2.gif> <https://global.discourse-cdn.com/standard11/uploads/ocaml/original/2X/1/1d43e0f42cc17a30053ee4c71460e70e4061f711.gif> Video ╌╌╌╌╌ <https://www.youtube.com/watch?v=KipRuiLXYEo> What's next? ╌╌╌╌╌╌╌╌╌╌╌╌ • Support for OCaml 5.0 • Better ergonomics for piping (i.e `_ |> _') • … you decide! (feature requests/pull requests welcome!) Sandmark Nightly - Benchmarking as a Service ════════════════════════════════════════════ Archive: <https://discuss.ocaml.org/t/ann-sandmark-nightly-benchmarking-as-a-service/10174/1> Shakthi Kannan announced ──────────────────────── Tarides is happy to announce Sandmark Nightly benchmarking as a service. tl;dr OCaml compiler developers can now point development branches at the service and get sequential and parallel benchmark results at <https://sandmark.tarides.com>. [Sandmark] is a collection of sequential and parallel OCaml benchmarks, its dependencies, and the scripts to run the benchmarks and collect the results. Sandmark was developed for the Multicore OCaml project in order to (a) ensure that OCaml 5 (with multicore support) does not introduce regressions for sequential programs compared to sequential OCaml 4 and (b) OCaml 5 programs scale well with multiple cores. In order to reduce the noise and get actionable results, Sandmark is typically run on [tuned machines]. This makes it harder for OCaml developers to use Sandmark for development who may not have tuned machines with a large number of cores. To address this, we introduce Sandmark Nightly service which runs the sequential and parallel benchmarks for a set of compiler /variants/ (branch/commit/PR + compiler & runtime options) on two tuned machines: • Turing (28 cores, Intel(R) Xeon(R) Gold 5120 CPU @ 2.20GHz, 64 GB RAM) • Navajo (128 cores, AMD EPYC 7551 32-Core Processor, 504 GB RAM) OCaml developers can request their development branches to be added to the nightly runs by adding it to [sandmark-nightly-config]. The results will appear the following day at <https://sandmark.tarides.com>. Here is an illustration of sequential benchmark results from the service: <https://i.imgur.com/Mn7VZky.png> You should first specify the `number of variants' that you want for comparison, and then select either the `navajo' or `turing' hostnames. The dates for which benchmark results are available are then listed in the `date' column. If there are more than one result on a given day, then the specific variant name, SHA1 commit and date are displayed together for selection. You need to choose one of the variants as a baseline for comparison. In the following graph, the `5.1.0+trunk+sequential_20220712_920fb8e' build on the `navajo' server has been chosen as the baseline, and you can see the normalized time (seconds) comparison for the various Sandmark benchmarks for both `5.1.0+trunk+sequential_20220713_c759890' and `5.1.0+trunk+sequential_20220714_606abe8' variants. We observe that the `matrix_multiplication' and `soli' benchmark have become 5% slower as compared to the July 12, 2022 nightly run. <https://i.imgur.com/7b0yS0h.png> Similarly, the normalized MaxRSS (KB) graph for the same baseline and variants chosen for comparison is illustrated below: <https://i.imgur.com/SfMbEiu.png> The `mandelbrot6' and `fannkuchredux' benchmarks have increased the MaxRSS (KB) by 3% as compared to the baseline variant, whereas, the metric has significantly improved for the `lexifi-g2pp' and `sequence_cps' benchmarks. The parallel benchmark speedup results are also available from the Sandmark nightly runs. <https://i.imgur.com/uKFDXCv.png> <https://i.imgur.com/24BGXVZ.png> We observe from the speedup graph that there is not much difference between `5.1.0+trunk+parallel_20220714_606abe8' and the `5.1.0+trunk+decouple_20220706_eb7a38d' developer branch results. The x-axis in the graph represents the number of domains, while the y-axis corresponds to the speedup. The number in the parenthesis against each benchmark refers to the corresponding running time of the sequential benchmark. These comparison results are useful to observe any performance regressions over time. It is recommended to use the `turing' machine results for the parallel benchmarks as it is tuned. If you would like to use Sandmark nightly for OCaml compiler development, please do ping us for access to the [sandmark-nightly-config] repository so that you may add your own compiler variants. [Sandmark] <https://github.com/ocaml-bench/sandmark> [tuned machines] <https://github.com/ocaml-bench/ocaml_bench_scripts#notes-on-hardware-and-os-settings-for-linux-benchmarking> [sandmark-nightly-config] <https://github.com/ocaml-bench/sandmark-nightly-config> OCamlFormat Web Configurator ════════════════════════════ Archive: <https://discuss.ocaml.org/t/ann-ocamlformat-web-configurator/10103/6> Louis Roché announced ───────────────────── Thanks to [Pomba Magar] we now have a code editor with highlighting. It hopefully should also solve the lack of monospace font on safari. <https://global.discourse-cdn.com/standard11/uploads/ocaml/optimized/2X/9/96fb3536409c5553926228f097812d5b63bd6db8_2_1380x798.jpeg> [Pomba Magar] <https://github.com/pjmp> Jane Street is Hiring Front End Engineers ═════════════════════════════════════════ Archive: <https://discuss.ocaml.org/t/jane-street-is-hiring-front-end-engineers/10183/1> Matt Russell announced ────────────────────── Jane Street is looking to hire Front End Engineers that want to design and build our next-generation of browser-based tools for operating our trading infrastructure (in OCaml). We’re building tools for expert users, and want to maintain a high UX bar while building tools that are powerful and flexible, so it’s a challenging domain. Ron Minsky wrote a bit more about the role here: <https://twitter.com/yminsky/status/1541605410691596289?s=20&t=yyrhGx7TnNwPIwdZoArpGw> And you can find a link to the job descriptions and the application page here: • NYC: [Front End Software Engineer: Experienced: Jane Street] • LDN: [Front End Software Engineer: Experienced: Jane Street] [Front End Software Engineer: Experienced: Jane Street] <https://www.janestreet.com/join-jane-street/position/6184529002/> [Front End Software Engineer: Experienced: Jane Street] <https://www.janestreet.com/join-jane-street/position/6236002002/> BAP 2.5.0 Release ═════════════════ Archive: <https://discuss.ocaml.org/t/ann-bap-2-5-0-release/10185/1> Ivan Gotovchits announced ───────────────────────── We are proud to announce the 2.5.0 release of the Carnegie Mellon University Binary Analysis Platform (CMU BAP). This is one of the biggest releases of BAP with lots of new [features and bug fixes]. In this release, we significantly improved BAP performance (in some use cases by a factor of three) and reduced memory consumption (up to a factor of two). In addition, we devised a new method for representing floating-point operations that is scalable and efficient and now we enable floating-point lifters for all x86 binaries with little to no extra overhead. The floating-point support for other targets is coming! We also rewrote the ABI specifications and now support dozens of different ABI. The new ABIs support calling conventions for structures and floating-point values and the `bap-c` library was significantly expanded with lots of new functions and types to describe C types and C object layouts. You can install bap with ┌──── │ opam install bap.2.5.0 └──── Do not forget to `opam update' before that. [features and bug fixes] <https://github.com/BinaryAnalysisPlatform/bap/releases/tag/v2.5.0> Why I used OCaml to developed a utility to download Jira items ══════════════════════════════════════════════════════════════ Archive: <https://discuss.ocaml.org/t/why-i-used-ocaml-to-developed-a-utility-to-download-jira-items/10186/1> Willem Hoek announced ───────────────────── Not a technical post – but my notes on why I decided to used OCaml to develop a small utility that download Jira items to SQLite [https://whoek.com/b/jira-to-sqlite-with-scrumdog] The Hacker News comments here [https://news.ycombinator.com/item?id=32109461] [https://whoek.com/b/jira-to-sqlite-with-scrumdog] <https://whoek.com/b/jira-to-sqlite-with-scrumdog> [https://news.ycombinator.com/item?id=32109461] <https://news.ycombinator.com/item?id=32109461> Liquidsoap 2.1.0 ════════════════ Archive: <https://discuss.ocaml.org/t/ann-liquidsoap-2-1-0/10192/1> Romain Beauxis announced ──────────────────────── Liquidsoap `2.1.0' was just released, some `10 months after the initial release of the ~2.0.x' release cycle! The release is available here: <https://github.com/savonet/liquidsoap/releases/tag/v2.1.0> and should be coming through `opam' pretty soon. 🤔 What is liquidsoap? ╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌ Liquidsoap is a statically-typed, type-inferred, functional scripting language equipped with specialized operators to build audio and video stream automation. The liquidsoap language offers all the flexibility and expressivity of a fully featured programming language to help build your media streams. Using liquidsoap, one can very quickly stand up a media streaming platform that can rotate files from playlists, accept live DJ input, mux audio and video, encode (or not!) and send the resulting data to youtube, icecast, HLS and more.. :white_check_mark: Why liquidsoap? ╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌ While there are many tools that offer competing features, the real difference with liquidsoap is its scripting language. Setting up tools using configuration files is often easier and more straight forward, however, when it comes to the finer details, such as inserting jingles between shows, defining crossfades between tracks and more, potentially, each project has its own set of expectations, and this is where liquidsoap becomes really useful! :zap:️ What's new in Liquidsoap 2.1.0? :zap: ╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌ Lots of things have been brewing since the `2.0.0' release. This new release branch is intended to bring up some of the breaking changes that were introduced while we keep working on more exciting future changes that we have on our [roadmap] Some noticeable changes include: [roadmap] <https://github.com/savonet/liquidsoap/blob/main/ROADMAP.md> Improved JSON parsing ┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄ You should now be able to do: ┌──── │ let json.parse ({ │ foo, │ bla, │ gni │ } : { │ foo: string, │ bla: float, │ gni: bool │ }) = '{ "foo": "aabbcc", "bla": 3.14, "gni": true }' └──── For any one who has ever tried to parse json in their liquidsoap scripts, this is gonna be a game changer. We have a detailed article [here] [here] <https://www.liquidsoap.info/doc-dev/json.html> Regular expressions are now first-class entities. ┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄ This should be familiar to anyone used to working with Javascript's regular expression. So, now, instead of doing: ┌──── │ string.match(pattern="\\d+", s) └──── You will now do: ┌──── │ r/\d+/.test(s) └──── There's a detailed description of this new feature [here]. [here] <https://www.liquidsoap.info/doc-dev/language.html#regular_expressions> Vim now highlights types, feedback welcome ══════════════════════════════════════════ Archive: <https://discuss.ocaml.org/t/vim-now-highlights-types-feedback-welcome/10198/1> Maëlan announced ──────────────── [A patch] just made its way to [the community-maintained Vim files for OCaml] (not propagated to the [official Vim distribution], yet), that tries to highlight types. IMHO the patch is large and hacky so you may want to try it cautiously, and *feedback would be appreciated*. :-) The former behavior was to highlight identifiers that happened to be the name of a builtin type (such as `int' or `list'), regardless of where they appeared. Now, in principle, all type expressions can be highlighted, and be so only when in a type context. By default, only builtin types are highlighted, but you can unleash the full power of the new linter: ┌──── │ " put this in ~/.vim/after/syntax/ocaml.vim for instance: │ hi link ocamlTypeConstr Type │ hi link ocamlTypeBuiltin Type │ hi link ocamlTypeVar Type │ hi link ocamlTypeAnyVar Type └──── or fancier (if you like excess :rainbow:): ┌──── │ " 112 = light green (the color of the “Type“ hl group with my theme) │ hi ocamlTypeConstr ctermfg=112 │ hi ocamlTypeBuiltin ctermfg=112 cterm=bold │ hi ocamlTypeVar ctermfg=112 cterm=italic │ hi ocamlTypeAnyVar ctermfg=112 cterm=bold └──── Even if you don’t care about highlighting types, allowing the linter to discriminate between types and exceptions has some tangential benefits. [A patch] <https://github.com/ocaml/vim-ocaml/pull/76> [the community-maintained Vim files for OCaml] <https://github.com/ocaml/vim-ocaml> [official Vim distribution] <https://github.com/vim/vim/tree/master/runtime> Other OCaml News ════════════════ From the ocaml.org blog ─────────────────────── Here are links from many OCaml blogs aggregated at [the ocaml.org blog]. • [Faster Incremental Builds with Dune 3] [the ocaml.org blog] <https://ocaml.org/blog/> [Faster Incremental Builds with Dune 3] <https://tarides.com/blog/2022-07-12-faster-incremental-builds-with-dune-3> Old CWN ═══════ If you happen to miss a CWN, you can [send me a message] and I'll mail it to you, or go take a look at [the archive] or the [RSS feed of the archives]. If you also wish to receive it every week by mail, you may subscribe [online]. [Alan Schmitt] [send me a message] <mailto:alan.schmitt@polytechnique.org> [the archive] <https://alan.petitepomme.net/cwn/> [RSS feed of the archives] <https://alan.petitepomme.net/cwn/cwn.rss> [online] <http://lists.idyll.org/listinfo/caml-news-weekly/> [Alan Schmitt] <https://alan.petitepomme.net/> [-- Attachment #2: Type: text/html, Size: 30718 bytes --]
[-- Attachment #1: Type: text/plain, Size: 2995 bytes --] *CALL FOR PAPERS: * The 34th Symposium on Implementation and Application of Functional Languages (IFL 2022) *Submission and registration are open.* See https://ifl22.github.io/. Copenhagen, August 31st-September 2nd, 2022 *Important dates * Draft paper submission: August 7th, 2022 Draft paper notification: August 9th, 2022 Early registration deadline: August 12th, 2022 Late registration deadline: September 2nd, 2022 Symposium: August 31st-September 2nd, 2022 (3 days) *Scope * The goal of the IFL symposia is to bring together researchers actively engaged in the implementation and application of functional and function-based programming languages. IFL 2022 will be a venue for researchers to present and discuss new ideas and concepts, work in progress, and publication-ripe results related to the implementation and application of functional languages and function-based programming. Topics of interest to IFL include, but are not limited to: * language concepts * type systems, type checking, type inferencing * compilation techniques * staged compilation * run-time function specialization * run-time code generation * partial evaluation * abstract interpretation * metaprogramming * generic programming * automatic program generation * array processing * concurrent/parallel programming * concurrent/parallel program execution * embedded systems * web applications * embedded domain specific languages * security * novel memory management techniques * run-time profiling performance measurements * debugging and tracing * virtual/abstract machine architectures * validation, verification of functional programs * tools and programming techniques * industrial applications *Submissions and peer-review * Following IFL tradition, IFL 2022 will use a post-symposium review process to produce the formal proceedings. Before the symposium authors submit draft papers. These draft papers will be screened by the program chair to make sure that they are within the scope of IFL. The draft papers will be made available to all participants at the symposium. Each draft paper is presented by one of the authors at the symposium. Notice that it is a requirement that accepted draft papers are presented physically at the symposium. After the symposium, a formal review process will take place, conducted by the program committee. Reviewing is single blind. There will be at least 3 reviews per paper. The reviewers have 6 weeks to write their reviews. For the camera-ready version the authors can make minor revisions which are accepted without further reviewing. Contributions submitted for the draft paper deadline must be between two and twelve pages long. For submission details, please consult the IFL 2022 website at https://ifl22.github.io/. *Where * IFL 2022 will be held physically in Copenhagen, Denmark, arranged by DIKU at the University of Copenhagen. See the IFL 2022 website at https://ifl22.github.io/ for more information. [image: beacon] [-- Attachment #2: Type: text/html, Size: 3785 bytes --]
[-- Attachment #1: Type: text/plain, Size: 3189 bytes --] CALL FOR PAPERS *The 2nd International Workshop on on Intelligent IoT Solutions for Smart Cities (**WIISSC'2022) * *to be held in conjunction with IEEE ISC 2022* https://attend.ieee.org/isc2-2022/ *26-29 September 2022, Paphos, Cyprus.* https://sites.google.com/view/wiissc22/scope?authuser=0 Dear Colleagues, We are pleased to invite you to submit Full Papers to the second International Workshop on Intelligent IoT Solutions for Smart Cities co-located with IEEE ISC 2022, will be held on September 26-29, 2022, Paphos, Cyprus ======================Scope============== Recently, with the successful development and the deployment of Internet of Things (IOT) architectures, cities across the world are becoming smart Cities. As a result, many services ensured by each city, such as education, transportation, buildings, healthcare, agriculture and environment are becoming more and more intelligent. However, the emergence of the coronavirus (COVID-19) as a global pandemic in recent months has shown the limitation of the intelligent solutions that are already deployed to ensure a sustainable and livable city for citizens. Indeed, with the exponential growth of the number of infected people and rapid spread of the virus over different continents, the attitudes and behaviors concerning both private users and business users have shifted. In this context, the use of Artificial Intelligence (AI) for developing intelligent IoT solutions represents a promising way to deal with Coronavirus or other pandemic. Through the convergence of technologies incorporating sensors, smart connected objects, data analytics and data visualization, we can solve many real-life problems in smart cities, especially those that are caused directly by this pandemic. In this workshop, we are focusing on AI and IoT that currently affect smart cities in general around the world. For this, the objective of this workshop is to bring together researchers to discuss recent algorithms and solutions based on IoT and AI. *====================TOPICS=======================* Authors are invited to submit previously unpublished papers to this workshop. Topics include, but are not limited to: - Artificial intelligence based protocols and services for smart cities - Artificial intelligence based application for smart cities - Artificial intelligence for smart education - Artificial intelligence for smart environment - Intelligent control of smart grid - Artificial intelligence for smart transportation - Intelligent control for smart cities - Intelligent control of building - Optimization in IoT - IoT-enabled urban services - Machine learning for IoT - Deep learning for IoT ==========Submission Link: ============ https://easychair.org/my/conference?conf=isc22022 ==========Technically sponsored by: ========== IEEE and IEEE ComSoc ===========Important Dates================= Submission deadline (extended): *July 20, 2022 (firm)* Acceptance notification: August 7, 2022 Camera-ready : August 15, 2022 Best regards [-- Attachment #2: Type: text/html, Size: 18722 bytes --]
[-- Attachment #1: Type: text/plain, Size: 555 bytes --] Dear colleague, I hope you are fine and doing well. You are cordially invited to serve as reviewer for our edited book :*Advanced AI and Internet of Health Things Technologies for Combating Pandemic* This book will be published by Springer and indexed by (Scopus) Website: https://sites.google.com/view/ioht-pandemic-book/home-page?authuser=0 If you are interested in serving as reviewer for this book, please kindly contact me at *lahby@ieee.org <lahby@ieee.org>* NB. You may need to review at best *one chapter* when the time comes Best regards [-- Attachment #2: Type: text/html, Size: 892 bytes --]
[-- Attachment #1: Type: text/plain, Size: 3763 bytes --] - We apologize if you receive multiple copies of this CFC. - We appreciate your help to forward this CFC to your friends & email lists. *===========================Call for chapters=====================* Dear colleagues, We are in the process of coming up with a volume titled *“Applications of Remote Sensing Techniques for Sustainable Security ” *to be published by Springer (proposal is initially communicated, awaiting for final approval) at *the end of 2022.* We cordially invite you to contribute a chapter. The full chapter is due later this year but for now, I will just need the following: - Author List - Chapter Title - Abstract (between 2 and 6 sentences) The last deadline to submit your short abstract directly at lahby@ieee.org is *July 15, 2022 (Firm Deadline)* *SCOPE:* With the advent of the big data era in remote sensing, artificial intelligence (AI) has spread to almost every corner of various remote sensing applications. In many cases, the characteristics of remote sensing big data, such as multi-source, multi-scale, high-dimensional, dynamic state, isomeric, and non-linear features, etc., are well learned by advanced AI algorithms. Data-driven methods, especially deep learning models, have achieved state-of-the-art results for most remote sensing image processing tasks (object detection, segmentation, etc.) and some inverse remote sensing tasks (atmosphere, vegetation, etc.). Using large labeled datasets, we can often make very accurate predictions on remote sensing data. However, current data-driven AI has not provided us with clear physical or cognitive meaning of remote sensing data's internal features and representations. Most deep learning techniques do not reveal how data features take effect and why predictions are made. Remote sensing data has exacerbated the problem of opacity and inexplicability of current AI. It becomes a barrier between the latest AI techniques and some remote sensing applications. Many scientists in hydrological remote sensing, atmospheric remote sensing, oceanic remote sensing, etc. do not even believe the results of deep learning predictions, as these communities are more inclined to believe models with clear physical meaning. This forthcoming book seeks contributions to remote sensing data. In particular, we are looking for research papers on applications of remote sensing in many fields of smart cities such as smart transportation, smart agriculture, and smart Environment. *NB: *There are no submission or acceptance fees for manuscripts submitted to this book for publication The tentative structure of the book (but are not limited to the following Parts) is mentioned below:. *Part 1: Theoretical and Applied Aspects of Remote Sensing* - Chapter 1. Remote Sensing Techniques State-of-the-Art - Chapter 2. Hyperspectral remote sensing applications: State-of-the-Art - Chapter 3. Smart cities: State-of-the-Art *Part 2: Remote sensing and Smart cities Applications* - Chapter 4. Smart Agriculture Security - Chapter 5. Smart Transportation Security - Chapter 6. Smart Environment security - Chapter 7. Smart Buildings security; - Chapter 8. Smart Economy security *Part 3: Remote sensing and technologies* - Chapter 9. Artificial Intelligence for Enabled Remote Sensing - Chapter 10. machine learning for Enabled Remote Sensing - Chapter 11. Deep Learning for Enabled Remote Sensing - Chapter 12. XAI for Enabled Remote Sensing - Chapter 13. Big Data for Enabled Remote Sensing - Chapter 14. Blockchain for Enabled remote sensing *Part 4: Futuristic Ideas* - Chapter 15. Futuristic Ideas for Remote sensing Best regards [-- Attachment #2: Type: text/html, Size: 9951 bytes --]
[-- Attachment #1: Type: text/plain, Size: 7735 bytes --] ------------------------------------------------------------------------------- GPCE 2022: 21st International Conference on Generative Programming: Concepts & Experiences December 5-7, 2022 (co-located with SPLASH) Auckland, New Zealand with hybrid sessions https://conf.researchr.org/home/gpce-2022/ ------------------------------------------------------------------------------- News: 1. GPCE will be HYBRID – in-person and online presentations are allowed. 2. GPCE and SLE will have a joint program as in the previous years. 3. Submission site (https://gpce2022.hotcrp.com/) is now open. --------------------------- CALL FOR PAPERS --------------------------- The ACM SIGPLAN International Conference on Generative Programming: Concepts & Experiences (GPCE) is a programming languages conference focusing on techniques and tools for code generation, language implementation, and product-line development. GPCE seeks conceptual, theoretical, empirical, and technical contributions to its topics of interest, which include but are not limited to: - program transformation, staging, macro systems, preprocessors, program synthesis, and code-recommendation systems, - domain-specific languages, language embedding, language design, and language workbenches, - feature-oriented programming, domain engineering, and feature interactions, - applications and properties of code generation, language implementation, and product-line development. GPCE promotes cross-fertilization between programming languages and software development and among different styles of generative programming in its broadest sense. Authors are welcome to check with the PC chair whether their planned papers are in scope. --------------------------- PAPER CATEGORIES --------------------------- GPCE solicits three kinds of submissions: - **Full Papers** reporting original and unpublished results of research that contribute to scientific knowledge for any GPCE topics. Full paper submissions must not exceed 12 pages excluding the bibliography. - **Short Papers** presenting unconventional ideas or new visions in any GPCE topics. Short papers do not always contain complete results as in the case of full papers, but can introduce new ideas to the community and get early feedback. Note that short papers are not intended to be position statements. Accepted short papers are included in the proceedings and will be presented at the conference. Short paper submissions must not exceed 6 pages excluding the bibliography, and must have the text "(Short Paper)" appended to their titles. - **Tool Demonstrations** presenting tools for any GPCE topics. Tools must be available for use and must not be purely commercial. Submissions must provide a tool description not exceeding 6 pages excluding bibliography and a separate demonstration outline including screenshots also not exceeding 6 pages. Tool demonstration submissions must have the text "(Tool Demonstration)" appended to their titles. If they are accepted, tool descriptions will be included in the proceedings. The demonstration outline will only be used for evaluating the submission. --------------------------- PAPER SELECTION --------------------------- The GPCE program committee will evaluate each submission according to the following selection criteria: - Novelty. Papers must present new ideas or evidence and place them appropriately within the context established by previous research in the field. - Significance. The results in the paper must have the potential to add to the state of the art or practice in significant ways. - Evidence. The paper must present evidence supporting its claims. Examples of evidence include formalizations and proofs, implemented systems, experimental results, statistical analyses, and case studies. - Clarity. The paper must present its contributions and results clearly. --------------------------- BEST PAPER AWARD --------------------------- Following the tradition, the GPCE 2022 program committee will select the best paper among accepted papers. The authors of the best paper will be given the best paper award at the conference. --------------------------- IMPORTANT DATES --------------------------- - Abstract submission 8 August (Mon) - Paper submission 12 August (Fri) - Review notification 28 September (Wed) - Author response period 28 September (Wed) - 30 September (Fri) - Final notification 10 October (Mon) - Camera-ready 24 October (Mon) - Conference 5 December (Mon) - 7 December (Wed) All times are in AoE (Anywhere on Earth). --------------------------- PAPER SUBMISSION --------------------------- Papers must be submitted using HotCRP: https://gpce2022.hotcrp.com/ All submissions must use the ACM SIGPLAN Conference Format "acmart". Be sure to use the latest LaTeX templates and class files, the SIGPLAN sub-format, and 10-point font. Consult the sample-sigplan.tex template and use the document-class \documentclass[sigplan,anonymous,review]{acmart}. To increase fairness in reviewing, GPCE 2022 uses the double-blind review process which has become standard across SIGPLAN conferences: - Author names, institutions, and acknowledgments should be omitted from submitted papers, and - references to the authors' own work should be in the third person. No other changes are necessary, and authors will not be penalized if reviewers are able to infer authors' identities in implicit ways. For additional information, clarification, or answers to questions, contact the program chair. The official publication date is the date the proceedings are made available in the ACM Digital Library. Papers must describe work not currently submitted for publication elsewhere as described by the SIGPLAN Republication Policy (http://www.sigplan.org/Resources/Policies/Republication/). --------------------------- ORGANIZATION --------------------------- - General Chair: Bernhard Scholz (University of Sydney) - Program Chair: Yukiyoshi Kameyama (University of Tsukuba) - Publicity Chair: Youyou Cong (Tokyo Institute of Technology) - Steering Committee Chair: Sebastian Erdweg (JGU Mainz) For additional information, clarification, or answers to questions, contact the program chair: kameyama at acm.org --------------------------- PROGRAM COMMITTEE --------------------------- Baris Aktemur - Intel Walter Binder - Università della Svizzera italiana Nicolas Biri - Luxembourg Institute of Science and Technology Elisa Gonzalez Boix - Vrije Universiteit Brussel Sheng Chen - UL Lafayette Shigeru Chiba - The University of Tokyo Youyou Cong - Tokyo Institute of Technology Coen De Roover - Vrije Universiteit Brussel Robert Glück - University of Copenhagen Jeff Gray - University of Alabama Atsushi Igarashi - Kyoto University Yukiyoshi Kameyama - University of Tsukuba, Chair Raffi Khatchadourian - City University of New York (CUNY) Hunter College Julia Lawall - Inria Geoffrey Mainland - Drexel University Bruno C. d. S. Oliveira - The University of Hong Kong Klaus Ostermann - University of Tübingen Max Schaefer - GitHub Ulrik Pagh Schultz - University of Southern Denmark Sibylle Schupp - Hamburg University of Technology Amir Shaikhha - University of Edinburgh Artjoms Sinkarovs - Heriot-Watt University Daniel Strüber - Chalmers University of Gothenburg, Radboud University Nijmegen Nicolas Stucki - EPFL Eli Tilevich - Virginia Tech Tijs van der Storm - CWI & University of Groningen Jeremy Yallop - University of Cambridge [-- Attachment #2: Type: text/html, Size: 8154 bytes --]
[-- Attachment #1: Type: text/plain, Size: 17052 bytes --] Hello Here is the latest OCaml Weekly News, for the week of July 05 to 12, 2022. Table of Contents ───────────────── Dune how to define custom build task Timedesc 0.8.0 - modern date time handling containers 3.9 OBazl 2.0.0-alpha-1 (Building OCaml SW with Bazel) QCheck 0.19 Opam-cross-windows now supports OCaml 4.14.0! Other OCaml News Old CWN Dune how to define custom build task ════════════════════════════════════ Archive: <https://discuss.ocaml.org/t/dune-how-to-define-custom-build-task/10092/1> cnmade explained ──────────────── dune has very powerful extensions, but the documentation doesn't tell you directly. Today I'll share a specific example of how we can make dune do many things with a dune configuration. For example • Publish compiled documents to our documentation server • Sending email notifications to email groups • Sending SMS notifications to administrators • Build a document and open a browser to preview the document page Let's start with an example, we create a dune file in the root directory of our project, which you may not have originally, you have to create a new one, we enter the following ┌──── │ ; now we tell you how to define a custom rule │ ; rule start with (rule ) │ (rule │ ; (alias is point the command name , so you can run this rule by call dune build @docopen │ (alias docopen) │ ; following line is very important, it tell dune do not cache this build command, so it will running every call │ without any cache │ (deps (universe)) │ ; action (system to told system run command by `sh` in your Linux/MacOS, windows user may running cmd.exe │ ; cd ../.. is change the base directory of the running command ,or the default directory will be _build/default │ (action (system "cd ../.. && pwd && dune build @doc && open _build/default/_doc/_html/index.html" )) │ ) │ ; end of one piece of rule │ │ ; and we define more and more rule as we want │ (rule │ (alias whoami) │ (deps (universe)) │ (action (system "uname -a;whoami")) │ ) └──── In this example, we define two rules, the rules are the tasks that dune can recognize, in dune, it is called rules Because it is a custom build command, we use alias to take a unique and non-repeating alias. The first build command is to build the document and open the browser preview. Our alias is docopen Then deps we add universe to tell dune that you don't want to cache and give me a new build every time. If you don't add this line, dune will only give you one build, and then because of the cache, you won't be able to execute it later. action following by system here, action is the command to start, system means to use the system shell (windows is cmd, linux macos is sh) to give you the execution of the code you specify. You can see the first we are first change the directory to the project root directory [because the default directory is _build/default], and then we perform the build document generation, and then open open the generated html page. The first build command is this, if you want to perform the first build task, you can type `dune build @docopen' Then our second build command, relatively simple, with reference to the first, we can add a lot of build commands we want to add inside this dune configuration file. We just need to specify different alias aliases for them, no duplication. The official documentation also specifies some other available commands, I won't go into them one by one. Since I prefer to use shell scripts, I really only need the system to execute my shell scripts for me. Timedesc 0.8.0 - modern date time handling ══════════════════════════════════════════ Archive: <https://discuss.ocaml.org/t/ann-timedesc-0-8-0-modern-date-time-handling/10138/1> Darren announced ──────────────── I'm pleased to announce the release of Timedesc 0.8.0. Timedesc is a very comprehensive date time handling library with good support of time zone. [Homepage] [Homepage] <https://github.com/daypack-dev/timere> Features ╌╌╌╌╌╌╌╌ • Timestamp and date time handling with platform independent time zone support • Subset of the IANA time zone database is built into this library • Supports Gregorian calendar date, ISO week date, and ISO ordinal date • Supports nanosecond precision • ISO8601 parsing and RFC3339 printing Main changes since 0.6.0 ╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌ • Significantly reduced size of time zone database by using a custom compression scheme • Many thanks to @glennsl for the proposed scheme at issue [#46] • This yields reduction of roughly 82% for same date period. The exact range of years included has been tuned slightly as well and I've lost track of the exact size after compilation. • Significantly reduced the number of dependencies, and moved JS, JSON code into separate packages • Removed dependencies: `fmt', `containers', `oseq' • Introduced `sexplib' dependency for sexp handling consequently as previously containers `CCSexp' was used • Moved JSON code into `timedesc-json' package along with Yojson dependency • Moved `tzlocal' and `tzdb' stuff into their own separate packages (`timedesc-tzlocal' and `timedesc-tzdb' respectively) • Moved JS tzlocal backend into `timedesc-tzlocal-js' (along with JS specific dependencies) [#46] <https://github.com/daypack-dev/timere/issues/46> Quality of life changes ╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌ • Updated string conversion functions based on pretty printers which raise `Date_time_cannot_deduce_offset_from_utc' to raise the exception instead of returning `None' • This simplifies the handling as return type is now simply just `string' • And for serious stuff users are expected to use only unambiguous date times anyway, which would not trigger this exception • Added ISO8601 printing facilities to `Timestamp' module for consistency • They are just aliases to the RFC3339 printers containers 3.9 ══════════════ Archive: <https://discuss.ocaml.org/t/ann-containers-3-9/10140/1> Simon Cruanes announced ─────────────────────── I'm happy to announce that containers 3.9 has just been released. Containers is a lightweight, modular extension of the stdlib that tries to remains compatible with it. Containers is starting to sprout some serialization primitives: it now has codecs for Bencode and CBOR. This release also contains a revamp of the testlib system (bye qtest) and the use of ocamlformat, for potential contributors who enjoy that. Containers should also be compatible with OCaml 5.0. OBazl 2.0.0-alpha-1 (Building OCaml SW with Bazel) ══════════════════════════════════════════════════ Archive: <https://discuss.ocaml.org/t/obazl-2-0-0-alpha-1-building-ocaml-sw-with-bazel/10142/1> Gregg Reynolds announced ──────────────────────── I've tagged alpha versions of OBazl [rules_ocaml] and [tools_opam]. The best way to start exploring is via [demos_obazl], which contains over 100 mostly simple demo/test programs, many of which are commented. Three simple commands get you configured and then `bazel test test' runs all the tests. Tested on MacOS 12.4 and Ubuntu 20. Documentation is still in progress but there is useful info at [The OBazl Book]. Lot's of things to say about this version but I'll stick to one point of interest. The four basic OCaml compilers are modeled by Bazel's platforms and toolchains mechanisms. Two of the compilers are actually cross-compilers (e.g. `ocamlc.opt' runs on the system arch but targets the OCaml vm), so to pick a compiler you tell OBazl which buildhost and targethost platforms you want. I've predefined configurations in [.bazelrc]; for example: ┌──── │ build:bcnc --host_platform=@opam//tc/host/build:bc │ build:bcnc --platforms=@opam//tc/host/target:nc └──── which means to select the `ocamlopt.byte' (cross-)compiler, pass `--config=bcnc'. Kinda cool IMHO. Maybe overkill for the basic compilers, but the mechanism is essential to support remote builds, custom compiler implementations and genuine cross-compilers. Feedback welcome. [rules_ocaml] <https://github.com/obazl/rules_ocaml> [tools_opam] <https://github.com/obazl/tools_opam> [demos_obazl] <https://github.com/obazl/demos_obazl/blob/main/rules_ocaml/README.adoc> [The OBazl Book] <https://obazl.github.io/docs_obazl/> [.bazelrc] <https://github.com/obazl/demos_obazl/blob/main/rules_ocaml/.bazelrc> QCheck 0.19 ═══════════ Archive: <https://discuss.ocaml.org/t/ann-qcheck-0-19/10149/1> Jan Midtgaard announced ─────────────────────── I'm happy to share the release of QCheck 0.19 - a library for property-based testing in OCaml in the style of Haskell's QuickCheck. • GitHub repo: <https://github.com/c-cube/qcheck> • Documentation: <https://c-cube.github.io/qcheck/0.19/> The 0.19 release brings a range of new features and improvements detailed below and combines the effort of several individual contributors. It is now available on opam. Release notes: • new features and feature extensions • add optional `debug_shrink' parameters in alcotest interface and expose default `debug_shrinking_choices' in test runners • add missing `?handler' parameter to `Test.check_cell_exn' • add an option `retries' parameter to `Test.make' et al. for checking a property repeatedly while shrinking. This can be useful when testing non-deterministic code. • add `tup2' to `tup9' for generators • add `Test.make_neg' for negative property-based tests, that are expected not to satisfy the tested property. • add environment variable `QCHECK_LONG_FACTOR' similar to `QCHECK_COUNT' • rename `Gen.opt' to `Gen.option' but keep the old binding for compatibility. • shrinker changes • recursive `list' shrinker with better complexity • `string' shrinker reuses improved `list' shrinker and adds `char' shrinking • function shrinker now shrinks default entry first and benefits from `list' shrinker improvements • replacing the linear-time `char' shrinker with a faster one reusing the bisecting `int' shrinker algorithm • add `Shrink.char_numeral' and `Shrink.char_printable' • add shrinking for `char arbitrary~s ~char', `printable_char', and `numeral_char' • bug fixes • fix function generation affecting reproducability • fix distribution of `QCheck2.printable' which would omit certain characters • use `Float.equal' for comparing `float~s in the ~Observable' module underlying function generators. • documentation updates: • clarify upper bound inclusion in `Gen.int_bound' and `Gen.int_range' • clarify `printable_char' and `Gen.printable' distributions • add missing `string_gen_of_size' and `small_printable_string' documentation • document `QCheck_alcotest.to_alcotest' • fix documented size distribution for `arbitrary' generators `string_gen', `string', `printable_string', `numeral_string', `list', and `array' • fix exception documentation for `check_result', `check_cell_exn', and `check_exn' • fix documentation for the distribution of `Gen.printable' and `printable_char' • fix documentation for the shrinking behaviour of `QCheck2.printable' • internal and test suite changes • add additional expect and unit tests and refactor expect test suite • add a shrinker performance benchmark • remove `--no-buffer' option on `dune runtest' to avoid garbling the test output • make test suite run on 32-bit architectures Opam-cross-windows now supports OCaml 4.14.0! ═════════════════════════════════════════════ Archive: <https://discuss.ocaml.org/t/opam-cross-windows-now-supports-ocaml-4-14-0/10159/1> Romain Beauxis announced ──────────────────────── Bit of a late announcement but the `opam-cross-windows' project now supports the OCaml compiler version `4.14.0': <https://github.com/ocaml-cross/opam-cross-windows> The `opam-cross-windows' project is part of an initiative started by @whitequark to provide cross-compilation support to existing `opam' packages. This allows users to compile binaries for windows but also android and ios on a linux or macos host. Support for packages is a on best-effort basis and is always looking for more contributors. Adding a package can be a little tricky at times but, if your package uses `dune', the cross-compilation support there is pretty wonderful and makes it pretty easy to add cross-compiled packages. Other OCaml News ════════════════ >From the ocaml.org blog ─────────────────────── Here are links from many OCaml blogs aggregated at [the ocaml.org blog]. • [The Magic of Merlin] • [Thales Cyber@Station F Selection] • [Team Tarides Visits a 17th Century Chateau] • [Functional Conf 2022] • [OCaml 5 Alpha Release] • [Adding Merkle Proofs to Tezos] • [OCaml Matrix: A Virtual World] • [Tarides Sponsors 12th Annual Journées Franciliennes] • [OCaml.org Reboot: User-Centric Design & Content] • [Lightning Fast with Irmin: Tezos Storage is 6x faster with 1000 TPS surpassed] • [Tarides Partners with 50inTech!] • [What's New in MirageOS 4!] [the ocaml.org blog] <https://ocaml.org/blog/> [The Magic of Merlin] <https://tarides.com/blog/2022-07-05-the-magic-of-merlin> [Thales Cyber@Station F Selection] <https://tarides.com/blog/2022-06-28-thales-cyber-station-f-selection> [Team Tarides Visits a 17th Century Chateau] <https://tarides.com/blog/2022-06-23-team-tarides-visits-a-17th-century-chateau> [Functional Conf 2022] <https://tarides.com/blog/2022-06-21-functional-conf-2022> [OCaml 5 Alpha Release] <https://tarides.com/blog/2022-06-15-ocaml-5-alpha-release> [Adding Merkle Proofs to Tezos] <https://tarides.com/blog/2022-06-13-adding-merkle-proofs-to-tezos> [OCaml Matrix: A Virtual World] <https://tarides.com/blog/2022-06-09-ocaml-matrix-a-virtual-world> [Tarides Sponsors 12th Annual Journées Franciliennes] <https://tarides.com/blog/2022-06-02-tarides-sponsors-12th-annual-journ-e-francilienne> [OCaml.org Reboot: User-Centric Design & Content] <https://tarides.com/blog/2022-05-02-ocaml-org-reboot-user-centric-design-content> [Lightning Fast with Irmin: Tezos Storage is 6x faster with 1000 TPS surpassed] <https://tarides.com/blog/2022-04-26-lightning-fast-with-irmin-tezos-storage-is-6x-faster-with-1000-tps-surpassed> [Tarides Partners with 50inTech!] <https://tarides.com/blog/2022-04-19-tarides-partners-with-50intech> [What's New in MirageOS 4!] <https://tarides.com/blog/2022-04-14-what-s-new-in-mirageos-4> Old CWN ═══════ If you happen to miss a CWN, you can [send me a message] and I'll mail it to you, or go take a look at [the archive] or the [RSS feed of the archives]. If you also wish to receive it every week by mail, you may subscribe [online]. [Alan Schmitt] [send me a message] <mailto:alan.schmitt@polytechnique.org> [the archive] <https://alan.petitepomme.net/cwn/> [RSS feed of the archives] <https://alan.petitepomme.net/cwn/cwn.rss> [online] <http://lists.idyll.org/listinfo/caml-news-weekly/> [Alan Schmitt] <https://alan.petitepomme.net/> [-- Attachment #2: Type: text/html, Size: 28556 bytes --]
[-- Attachment #1: Type: text/plain, Size: 5564 bytes --] Dear Colleague, Sorry if you receive this CFP multiple times. We would appreciate it if you could consider submitting your research work to the Springer icSoftComp2022, which will be on December 09-10, 2022. Conference page: https://www.charusat.ac.in/icSoftComp2022/index.php ** Apologies if you receive multiple copies of this CFP ** ** Please forward to anyone who might be interested ** ================================ Call for Paper and Workshop proposals: ================================ *Springer* *2022 4th International Conference on Soft Computing and its Engineering Applications (icSoftComp2022) * https://www.charusat.ac.in/icSoftComp2022/index.php Charotar University of Science and Technology (CHARUSAT) , Changa, India December 09-10, 2022 [Hybrid mode] Conference proceedings by Springer CCIS Series (Scopus indexed) Conference series link(s): https://link.springer.com/conference/icsoftcomp Paper submission links: https://equinocs.springernature.com/service/icSoftComp2022 ============== Important Notes: ============== - icSoftComp2022 follows a *double-blind peer review* system. - Please follow the Springer CCIS format for paper submission. - Conference is in* Hybrid mode* (onsite and online) - Authors of selected papers will be invited to submit extended article versions for a post-conference special issue of peer reviewed Scopus indexed journals. 2022 4th International Conference on Soft Computing and its Engineering Applications (icSoftComp2022) aims to provide an excellent international forum to the researchers, academicians, students, and professionals in the areas of computer science and engineering to present their research, knowledge, new ideas and innovations. It will exhibit an exciting technical program. It will also feature high-quality Tutorials and Workshops, Industry Panels and Exhibitions, as well as Keynotes from prominent research and industry leaders. We are now open for technical paper submission, proposals for workshops/special sessions, and proposals for tutorials. - Submissions for the main conference must be made online through EquinOCS following the submission link: https://equinocs.springernature.com/service/icSoftComp2022 - Submission for the Workshops/Special Session proposals are to be directed to the TPC Chair (kanupatel.mca@charusat.ac.in). Please refer: https://www.charusat.ac.in/icSoftComp2022/workshops.php ================ Paper Submission: ================ icSoftComp2022 solicits papers on all aspects of Soft computing and its engineering applications for smart and better world. The topics of the conference include, but are not limited to the following: *Track 1: Theory and Methods* Ant colony theory Approximate reasoning Artificial Intelligence (AI) Big Data analytics Bio-inspired computing Chaos theory Cognitive science Data mining and Knowledge discovery Deep learning Digital information processing Evolutionary computing Fuzzy set theory Immunological computing Knowledge virtualization Machine learning Modeling Neural computing Probabilistic reasoning Rough sets Swarm intelligence *Track 2: Systems and Applications* Advanced intelligent systems Agent-based systems Agricultural informatics Assistive systems Autonomic and autonomous systems Bioinformatics and scientific computing Cognitive systems and applications Complex systems Computer forensics Cyber Physical Systems (CPS) Human computer interation Internet of Things (IoT) Intrusion detection and Security intelligence Mechatronics Multi-agent systems Natural language processing Network and telecommunications systems Optimization Pattern recognition Process control Remote sensing system Robotics Signal processing Time series forecasting Web intelligence *Track 3: Hybrid Techniques* Auxiliary hybridization Embedded hybridization Fuzzy-genetic approach Neuro-evolutionary computing Neuro-fuzzy computing Sequential hybridization *Track 4: Soft Computing for Smart Sustainable World* Smart cities Smart governance Smart healthcare Smart homes and buildings Smart social services Smart transportation Smart utilities Smart vehicles Smart villages ============== Important Dates: ============== Submission due: 31/07/2022 Acceptance Notification: 30/09/2022 Camera Ready Paper Submission due: 31/10/2022 Last date of registration: 31/10/2022 Conference dates: 09-10/12/2022 ================ Paper Publication: ================ The accepted and presented papers will be published as proceedings with Springer in their prestigious Communications in Computer and Information Science (CCIS) series. Indexed by Scopus, DBLP, Ei Compendex, Google Scholar, and Springerlink ================ Journal Publication: ================ Authors of selected papers will be invited to submit extended article versions for a post-conference special issue of peer-reviewed journals. ============================ Previous conference proceedings: ============================ - icSoftComp2021 https://link.springer.com/book/10.1007/978-3-031-05767-0 - icSoftComp2020 https://www.springer.com/gp/book/9789811607073 - icSoftComp2017 https://ieeexplore.ieee.org/xpl/conhome/8269416/proceeding ----------------------------------- Warm regards, K. K. Patel, Ph.D., Charotar University of Science & Technology (CHARUSAT) (Center of Excellence by Govt. of Gujarat) (Accredited "A" grade by NAAC, GoI) Cell#: +91-820 010 3724 https://www.charusat.ac.in/icSoftComp2022/ [-- Attachment #2: Type: text/html, Size: 36520 bytes --]
[-- Attachment #1: Type: text/plain, Size: 7592 bytes --] 17th International Conference on Risks and Security of Internet and Systems (CRiSIS 2022) December 7th-9th, 2022 Sousse, Tunisia https://crisis2022.redcad.org =============== TOPICS The International Conference on Risks and Security of Internet and Systems 2022 will be the 17th in a series dedicated to security issues in Internet-related applications, networks and systems. Internet has become essential for the exchange of information between user groups and organizations from different backgrounds and with different needs and objectives. These users are exposed to increasing risks regarding security and privacy, due to the development of more and more sophisticated online attacks, the growth of Cyber Crime, etc. Attackers nowadays do not lack motivation and they are more and more experienced. To make matters worse, for performing attacks have become easily accessible. Moreover, the increasing complexity as well as the immaturity of new technologies such as pervasive, mobile and wireless devices and networks, raise new security challenges. In this context, new security mechanisms and techniques should be deployed to achieve an assurance level acceptable for critical domains such as energy, transportation, health, defense, banking, critical infrastructures, embedded systems and networks, avionics systems, etc. The CRiSIS conference offers a remarkable forum for computer and network security actors from industry, academia and government to meet, exchange ideas and present recent advances on Internet-related security threats and vulnerabilities, and on the solutions that are needed to counter them. The list of topics includes but is not limited to: AI and machine learning based security approaches Analysis and management of risk Attacks and defenses Attack data acquisition and network monitoring Authorization, Authentication, and Identity Management Blockchain and Distributed Ledger Technologies Cryptography, biometrics, watermarking Dependability and fault tolerance of Internet applications Distributed systems security and safety Embedded system security and safety Empirical methods for security and risk evaluation Hardware-based security and physical security Intrusion detection and prevention systems Organizational, ethical, and legal issues Privacy protection and anonymization Risk-aware access and usage control Analysis and management of cyber crisis Security and risk assessment Security and risks metrics Security and dependability of operating systems Security and safety of critical infrastructures Security and privacy of peer-to-peer system Security and privacy of wireless networks Security in Cloud/Edge/Fog computing Security models and security policies Security of big data Security of industrial control systems Security of intelligent transportation systems Security of e-commerce, electronic voting and database systems Security of new generation networks Security of smart cities Security of smart grid Security of social networks Security of the IoT and IIoT Security of VoIP and multimedia Smartphone security and privacy Traceability, metrology and forensics Trust management Ubiquitous computing security Use of smart cards and personal devices for Internet applications Virtualization security Web and Web-service security =============== SUBMISSIONS Submitted papers must not substantially overlap with papers that have been published or that are simultaneously submitted to a journal or a conference with proceedings. Papers must be written in English and must be submitted electronically in PDF format. The papers that will be selected for presentation at the conference will be included in post-proceedings published by Springer in the Lecture Notes in Computer Science (LNCS) series (prior to publication the papers should be revised according to the review comments). Pre-proceedings will appear at the time of the conference. Maximum paper length will be 16 printed pages for full papers or 6 pages for short papers, in LNCS style. http://www.springer.de/comp/lncs/authors.html Authors of accepted papers must guarantee that their papers will be presented at the conference. All paper submissions will be handled through the Easy Chair conference management system: https://easychair.org/conferences/?conf=crisis2022 =============== IMPORTANT DATES Paper submission deadline: *July 07th, 2022 (extended)* Notification of acceptance: August 8th, 2022 Camera-ready paper due: September 22nd, 2022 Registration deadline: September 30th 2022 Conference date: December 7th-9th, 2022 =============== COMMITTEES -- General chairs Ahmed Hadj Kacem, University of Sfax, Tunisia Frédéric Cuppens, Polytechnique Montreal, Canada Nora Cuppens, Polytechnique Montreal, Canada -- Program Committee chairs Mohammad Zulkernine, School of Computing of Queen's University, Canada Mohamed Jmaiel, University of Sfax, Tunisia -- Program Committee (TBC) Takoua Abdellatif, UNiversity of Sousse, Tunisia Saed Alrabaee, United Arab Emirates University, United Arab Emirates Esma Aïmeur, University of Montreal, Canada Michel Barbeau, Carleton University, Canada Sébastien Bardin, CEA LIST, France Lotfi Ben Othmane, Iowa State University, USA Aymen Boudguiga, IRT SystemX, France Frederic Cuppens, Polytrechnique de Montreal, Canada Nora Cuppens, Polytrechnique de Montreal, Canada Soufiene Djahel, Manchester Metropolitan University, UK Bogdan Groza, Politehnica University of Timisoara, Romania Yong Guan, Iowa State University, USA Berk Gulmezoglu, Iowa State University, USA Philippe Jaillon, Ecole des Mines de Saint-Etienne, France Christos Kalloniatis, University of the Aegean, Greece Sokratis Katsikas, Norwegian University of Science and Technology, Norway Igor Kotenko, St. Petersburg Federal Research Center of the Russian Academy of Sciences, Russia Evangelos Kranakis, Carleton University, Canada Marc Lacoste, Orange Labs, France Jean Leneutre, Telecom Paris, France Jianbing Ni, University of Waterloo, Canada Fengjun Li, University of Kansas, USA Luigi Logrippo, Universite du Quebec en Outaouais, Canada Bo Luo, University of Kansas, USA Sanjay Madria, Missouri University of Science and Technology, USA Ahmed Meddahi, IMT Lille Douai, France Mohamed Mosbah, University of Bordeaux, France Guillermo Navarro, Autonomous University of Barcelona, Spain Kai Rannenberg, Goethe University Frankfurt, Germany Riadh Robbana, University of Carthage, Tunisia Michael Rusinowitch, LORIA – INRIA Nancy, France Siraj A. Shaikh, Coventry University, UK Jun Shao, Zhejiang Gongshang University, China Seungwon Shin, Texas A&M University, USA Natalia Stakhanova, University of Saskatchewan, Canada Ketil Stoelen, SINTEF, Norway Qiang Tang, Luxembourg Institute of Science and Technology, Luxembourg Nadia Tawbi, Laval University, Canada Eugene Vasserman, Kansas State University, USA Lingyu Wang, Concordia University, Canada Lingjing Yu, Chinese Academy of Sciences, China Akka Zemmari, Universite de Bordeaux, France Junwei Zhou, Wuhan University of Technology, China -- Organizing Committee Slim Kallel, University of Sfax, Tunisia (chair) Ismail Bouassida, University of Sfax, Tunisia Nesrine Khabou, University of Sfax, Tunisia Bechir Zalila, University of Sfax, Tunisia Saoussen Cheikhrouhou, University of Sfax, Tunisia [-- Attachment #2: Type: text/html, Size: 8239 bytes --]
[-- Attachment #1: Type: text/plain, Size: 7592 bytes --] 17th International Conference on Risks and Security of Internet and Systems (CRiSIS 2022) December 7th-9th, 2022 Sousse, Tunisia https://crisis2022.redcad.org =============== TOPICS The International Conference on Risks and Security of Internet and Systems 2022 will be the 17th in a series dedicated to security issues in Internet-related applications, networks and systems. Internet has become essential for the exchange of information between user groups and organizations from different backgrounds and with different needs and objectives. These users are exposed to increasing risks regarding security and privacy, due to the development of more and more sophisticated online attacks, the growth of Cyber Crime, etc. Attackers nowadays do not lack motivation and they are more and more experienced. To make matters worse, for performing attacks have become easily accessible. Moreover, the increasing complexity as well as the immaturity of new technologies such as pervasive, mobile and wireless devices and networks, raise new security challenges. In this context, new security mechanisms and techniques should be deployed to achieve an assurance level acceptable for critical domains such as energy, transportation, health, defense, banking, critical infrastructures, embedded systems and networks, avionics systems, etc. The CRiSIS conference offers a remarkable forum for computer and network security actors from industry, academia and government to meet, exchange ideas and present recent advances on Internet-related security threats and vulnerabilities, and on the solutions that are needed to counter them. The list of topics includes but is not limited to: AI and machine learning based security approaches Analysis and management of risk Attacks and defenses Attack data acquisition and network monitoring Authorization, Authentication, and Identity Management Blockchain and Distributed Ledger Technologies Cryptography, biometrics, watermarking Dependability and fault tolerance of Internet applications Distributed systems security and safety Embedded system security and safety Empirical methods for security and risk evaluation Hardware-based security and physical security Intrusion detection and prevention systems Organizational, ethical, and legal issues Privacy protection and anonymization Risk-aware access and usage control Analysis and management of cyber crisis Security and risk assessment Security and risks metrics Security and dependability of operating systems Security and safety of critical infrastructures Security and privacy of peer-to-peer system Security and privacy of wireless networks Security in Cloud/Edge/Fog computing Security models and security policies Security of big data Security of industrial control systems Security of intelligent transportation systems Security of e-commerce, electronic voting and database systems Security of new generation networks Security of smart cities Security of smart grid Security of social networks Security of the IoT and IIoT Security of VoIP and multimedia Smartphone security and privacy Traceability, metrology and forensics Trust management Ubiquitous computing security Use of smart cards and personal devices for Internet applications Virtualization security Web and Web-service security =============== SUBMISSIONS Submitted papers must not substantially overlap with papers that have been published or that are simultaneously submitted to a journal or a conference with proceedings. Papers must be written in English and must be submitted electronically in PDF format. The papers that will be selected for presentation at the conference will be included in post-proceedings published by Springer in the Lecture Notes in Computer Science (LNCS) series (prior to publication the papers should be revised according to the review comments). Pre-proceedings will appear at the time of the conference. Maximum paper length will be 16 printed pages for full papers or 6 pages for short papers, in LNCS style. http://www.springer.de/comp/lncs/authors.html Authors of accepted papers must guarantee that their papers will be presented at the conference. All paper submissions will be handled through the Easy Chair conference management system: https://easychair.org/conferences/?conf=crisis2022 =============== IMPORTANT DATES Paper submission deadline: *July 07th, 2022 (extended)* Notification of acceptance: August 8th, 2022 Camera-ready paper due: September 22nd, 2022 Registration deadline: September 30th 2022 Conference date: December 7th-9th, 2022 =============== COMMITTEES -- General chairs Ahmed Hadj Kacem, University of Sfax, Tunisia Frédéric Cuppens, Polytechnique Montreal, Canada Nora Cuppens, Polytechnique Montreal, Canada -- Program Committee chairs Mohammad Zulkernine, School of Computing of Queen's University, Canada Mohamed Jmaiel, University of Sfax, Tunisia -- Program Committee (TBC) Takoua Abdellatif, UNiversity of Sousse, Tunisia Saed Alrabaee, United Arab Emirates University, United Arab Emirates Esma Aïmeur, University of Montreal, Canada Michel Barbeau, Carleton University, Canada Sébastien Bardin, CEA LIST, France Lotfi Ben Othmane, Iowa State University, USA Aymen Boudguiga, IRT SystemX, France Frederic Cuppens, Polytrechnique de Montreal, Canada Nora Cuppens, Polytrechnique de Montreal, Canada Soufiene Djahel, Manchester Metropolitan University, UK Bogdan Groza, Politehnica University of Timisoara, Romania Yong Guan, Iowa State University, USA Berk Gulmezoglu, Iowa State University, USA Philippe Jaillon, Ecole des Mines de Saint-Etienne, France Christos Kalloniatis, University of the Aegean, Greece Sokratis Katsikas, Norwegian University of Science and Technology, Norway Igor Kotenko, St. Petersburg Federal Research Center of the Russian Academy of Sciences, Russia Evangelos Kranakis, Carleton University, Canada Marc Lacoste, Orange Labs, France Jean Leneutre, Telecom Paris, France Jianbing Ni, University of Waterloo, Canada Fengjun Li, University of Kansas, USA Luigi Logrippo, Universite du Quebec en Outaouais, Canada Bo Luo, University of Kansas, USA Sanjay Madria, Missouri University of Science and Technology, USA Ahmed Meddahi, IMT Lille Douai, France Mohamed Mosbah, University of Bordeaux, France Guillermo Navarro, Autonomous University of Barcelona, Spain Kai Rannenberg, Goethe University Frankfurt, Germany Riadh Robbana, University of Carthage, Tunisia Michael Rusinowitch, LORIA – INRIA Nancy, France Siraj A. Shaikh, Coventry University, UK Jun Shao, Zhejiang Gongshang University, China Seungwon Shin, Texas A&M University, USA Natalia Stakhanova, University of Saskatchewan, Canada Ketil Stoelen, SINTEF, Norway Qiang Tang, Luxembourg Institute of Science and Technology, Luxembourg Nadia Tawbi, Laval University, Canada Eugene Vasserman, Kansas State University, USA Lingyu Wang, Concordia University, Canada Lingjing Yu, Chinese Academy of Sciences, China Akka Zemmari, Universite de Bordeaux, France Junwei Zhou, Wuhan University of Technology, China -- Organizing Committee Slim Kallel, University of Sfax, Tunisia (chair) Ismail Bouassida, University of Sfax, Tunisia Nesrine Khabou, University of Sfax, Tunisia Bechir Zalila, University of Sfax, Tunisia Saoussen Cheikhrouhou, University of Sfax, Tunisia [-- Attachment #2: Type: text/html, Size: 8228 bytes --]
[-- Attachment #1: Type: text/plain, Size: 17974 bytes --] Hello Here is the latest OCaml Weekly News, for the week of June 28 to July 05, 2022. Table of Contents ───────────────── An amusing use of first-class modules: reading from plaintext and compressed files TLS signature with opam:tls Open Source tooling engineer at Jane Street Dune how to define custom build task Lwt.5.6.0 (and other Lwt packages) Windows-friendly OCaml 4.12 distribution - Diskuv OCaml 0.1.0 OCamlFormat Web Configurator Release of optiml-transport Old CWN An amusing use of first-class modules: reading from plaintext and compressed files ══════════════════════════════════════════════════════════════════════════════════ Archive: <https://discuss.ocaml.org/t/an-amusing-use-of-first-class-modules-reading-from-plaintext-and-compressed-files/10073/9> Continuing this thread, Maëlan asked and Simon Cruanes replied ────────────────────────────────────────────────────────────── You got me curious: what’s the reason for using a first-class module here instead of a record or an object? Of course! • compared to records, I find first-class modules to be a lot more convenient for this use case. I still use records for _data_, but a record-of-function is often less convenient. For example, modules allow you to use `include', they directly handle down-casting as a way to hide internal state (whereas for modules you need to close over values created before the record); module types are structural, so I don't need to worry about disambiguation, whereas records need more care there. In terms of performance both seem exactly the same, from my toy benchmarks. • compared to objects, first-class modules are a bit less convenient (no runtime-free cast, no true inheritance/mixin), but LSP and other tools are fragile. In addition, invoking an object method seems to be roughly twice as slow as a record/module field access — I suppose it's because the latter is just an access via offset. That's on a micro benchmark so in reality it might be worse. TLS signature with opam:tls ═══════════════════════════ Archive: <https://discuss.ocaml.org/t/tls-signature-with-opam-tls/9399/10> Marcus Rohrmoser announced ────────────────────────── just implemented key generation <https://codeberg.org/mro/seppo/src/branch/develop/lib/as2.ml#L95> Open Source tooling engineer at Jane Street ═══════════════════════════════════════════ Archive: <https://discuss.ocaml.org/t/job-open-source-tooling-engineer-at-jane-street/10083/1> Yaron Minsky announced ────────────────────── We're looking to hire someone to join our build-systems team with a focus on open-source tooling. We currently release almost a million lines of code of our internal libraries and tools, including things like Sexplib, Base, Core, Async, Incremental, Bonsai, Hardcaml, memtrace-viewer, and patdiff. We have internal tooling for moving code from our internal repositories to Github and for publishing to opam, and for ferrying information back from Github to our internal tools, so that developers can more easily and promptly respond to PRs and issues coming from the outside. We want to make open-sourcing our code better and faster, so it's easier for us to work with outside contributors, and improvements can get out to the community more quickly. Your work would be to make our releases delightfully easy and reliable! I wrote a bit more about it here: <https://twitter.com/yminsky/status/1536766031313739776?s=20&t=sCyUlHGHO1y3znBh4pl0Xw> If you're interested, go ahead and make an [ordinary application] to our software engineering role, and mention that you're interested in "open-source tooling". We're happy to hire for this role in both London and New York. [ordinary application] <https://www.janestreet.com/join-jane-street/apply/> Dune how to define custom build task ════════════════════════════════════ Archive: <https://discuss.ocaml.org/t/dune-how-to-define-custom-build-task/10092/1> cnmade explained ──────────────── dune has very powerful extensions, but the documentation doesn't tell you directly. Today I'll share a specific example of how we can make dune do many things with a dune configuration. For example • Publish compiled documents to our documentation server • Sending email notifications to email groups • Sending SMS notifications to administrators • Build a document and open a browser to preview the document page Let's start with an example, we create a dune file in the root directory of our project, which you may not have originally, you have to create a new one, we enter the following ┌──── │ ; now we tell you how to define a custom rule │ ; rule start with (rule ) │ (rule │ ; (alias is point the command name , so you can run this rule by call dune build @docopen │ (alias docopen) │ ; following line is very important, it tell dune do not cache this build command, so it will running every call │ without any cache │ (deps (universe)) │ ; action (system to told system run command by `sh` in your Linux/MacOS, windows user may running cmd.exe │ ; cd ../.. is change the base directory of the running command ,or the default directory will be _build/default │ (action (system "cd ../.. && pwd && dune build @doc && open _build/default/_doc/_html/index.html" )) │ ) │ ; end of one piece of rule │ │ ; and we define more and more rule as we want │ (rule │ (alias whoami) │ (deps (universe)) │ (action (system "uname -a;whoami")) │ ) └──── In this example, we define two rules, the rules are the tasks that dune can recognize, in dune, it is called rules Because it is a custom build command, we use alias to take a unique and non-repeating alias. The first build command is to build the document and open the browser preview. Our alias is docopen Then deps we add universe to tell dune that you don't want to cache and give me a new build every time. If you don't add this line, dune will only give you one build, and then because of the cache, you won't be able to execute it later. action following by system here, action is the command to start, system means to use the system shell (windows is cmd, linux macos is sh) to give you the execution of the code you specify. You can see the first we are first change the directory to the project root directory [because the default directory is _build/default], and then we perform the build document generation, and then open open the generated html page. The first build command is this, if you want to perform the first build task, you can type `dune build @docopen' Then our second build command, relatively simple, with reference to the first, we can add a lot of build commands we want to add inside this dune configuration file. We just need to specify different alias aliases for them, no duplication. The official documentation also specifies some other available commands, I won't go into them one by one. Since I prefer to use shell scripts, I really only need the system to execute my shell scripts for me. Lwt.5.6.0 (and other Lwt packages) ══════════════════════════════════ Archive: <https://discuss.ocaml.org/t/ann-lwt-5-6-0-and-other-lwt-packages/10077/2> Raphaël Proust announced ──────────────────────── Lwt 5.6.1 ╌╌╌╌╌╌╌╌╌ Version 5.6.1 of the Lwt package has been released. This version contains a fix for a bug introduced in 5.6.0 whereby devnull file descriptor would be closed during some uses of `Lwt_process'. <https://github.com/ocsigen/lwt/releases/tag/5.6.1> Windows-friendly OCaml 4.12 distribution - Diskuv OCaml 0.1.0 ═════════════════════════════════════════════════════════════ Archive: <https://discuss.ocaml.org/t/ann-windows-friendly-ocaml-4-12-distribution-diskuv-ocaml-0-1-0/8358/21> jbeckford announced ─────────────────── The 0.4.0 release of Diskuv OCaml for Windows users is available! It is usable enough that I've let my school-age kids (elementary through high school) install it and go through some tutorials. <https://github.com/diskuv/dkml-installer-ocaml#readme> The links to the documentation are available from the above link as well. Here are the one-time inconveniences if you install this release: 1. The built-in antivirus Windows Defender treats newly signed binaries like spam. There needs to be enough people who "Report this file as safe" before the binaries are trusted. /If you do nothing but mark it safe or install it on Windows, you are helping others!/ 2. The installer will automatically install the Visual Studio compiler if needed. But Visual Studio sometimes requires a reboot. The instructions will tell you if you need the reboot. 3. The Visual Studio Code OCaml plugin defaults to expecting a legacy `ocamlenv' program on Windows. You have to search for `ocamlenv' in Visual Studio Code Settings and disable it. This should have a fix, but not in time for this release. Windows parity with Unix ╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌ 1. `opam' commands like `opam install' should work without any wrappers. But you should create new switches with `opam dkml init' (see `--help' for options). 2. `dune' commands like `dune build' should work without any wrappers. The only hiccup is that aliases like `dune build @runtest' need to be escaped in PowerShell like: ┌──── │ dune build `@runtest └──── 3. You have partial support if your home directory has spaces, since it is very common on Windows to have your username be `FirstName LastName'. So far I've configured/patched most things to work with spaces, but there could be common packages that were missed, and only NTFS drives work. 4. OCaml 4.12.1. I'd like to upgrade to 4.13 or 4.14, but having support for Visual Studio Code debugging with [4.12-only ocamlearlybird] is more important, especially for traditional Windows users. 5. Dune 2.9.3. I've bundled in support in 2.9.3 for fswatch/inotify so that `dune build --watch' works on Windows. Nothing is blocking an upgrade to 3.x except time (ie. not now) and a reason. 6. Opam 2.1.2 plus some PRs that are pending the not-yet-released version 2.2. 7. Git performance on Windows just sucks. It is like someone designed it for a Linux kernel 🤨. Apparently [Git FSMonitor in 2.37.0] can be enabled to speed things up, but I don't have real-world experience with it because it was just released yesterday. 8. MSYS2, which can be accessed with `with-dkml bash', now uses the CLANG64 variant. There are thousands of up-to-date third-party libraries available and, unlike MinGW, they are ABI compatible with the dominant Windows compiler (MSVC). And if you are interested there is an [ocamlverse Help Wanted] to add the CLANG64 compiler as an alternative to the Administrator-requiring, reboot-needing MSVC compiler. Thanks to OCaml Software Foundation for sponsoring this! 0.4.x will be the last minor versions of the "preview". I'll be shifting to closing out any show-stopping bugs, and updating the various Windows onboarding guides for OCaml to officially include Diskuv OCaml. [4.12-only ocamlearlybird] <https://github.com/hackwaly/ocamlearlybird/issues/38> [Git FSMonitor in 2.37.0] <https://github.blog/2022-06-29-improve-git-monorepo-performance-with-a-file-system-monitor/> [ocamlverse Help Wanted] <https://ocamlverse.github.io/content/help_wanted.html> OCamlFormat Web Configurator ════════════════════════════ Archive: <https://discuss.ocaml.org/t/ann-ocamlformat-web-configurator/10103/1> Louis Roché announced ───────────────────── It is my pleasure to share with you the [ocamlformat configurator] as a web page. Ocamlformat is a great tool that really makes editing code a more pleasant experience. It has a bunch of different built in profiles and many additional options to fine tune how the code should look like. While I would encourage most people and new projects to use one of the default profiles, the many options are helpful when transitioning an existing codebase. Unfortunately it is not super easy to figure out which options to use and how to combine them. There are [58 parameters]! I've spent a long time trying different combinations by changing an option in my .ocamlformat, running `dune build @fmt`, checking the code, going back to the first step… It is a tedious work. So I decided to make a simple web interface with all of the options available and a faster feedback loop. <https://global.discourse-cdn.com/standard11/uploads/ocaml/optimized/2X/2/24e891e9e1400d4a47debf9e34b3ea414bebf418_2_1380x826.jpeg> Thanks to js_of_ocaml the task was not too complicated. Ocamlformat can be compiled to javascript, there is nothing special to do. Which means everything can be done in the browser, the code won't leak to anyone, there is no need to maintain a server, and the result will be guaranteed to be identical as a formatting with the cli tool. The configuration can be set through text (just put the content of your `.ocamlformat` in the text box) and through a bunch of dropdown. They will be combined together. The dropdown takes precedence over the textual configuration if an option is set in both. The project has been started as part of the "open source day" at Ahrefs (we try to dedicate some time to open source projects that we use internally). It is still in its infancy. Please pardon the terrible style, I am not a web developer and didn't have time to make it look nicer yet. There are some annoying things to fix (no feedback when the code is invalid and can't be formatted), and many improvements to come (a way to download the configuration for example). But I think that it is already working well enough to be used by others. You can find the configurator at <https://ahrefs.github.io/ocamlformat/> The source code is on github at <https://github.com/ahrefs/ocamlformat/tree/ahrefs/web-ui/bin/web-ui> If you like ocaml and want to look for a job, we have some [positions available] [ocamlformat configurator] <https://ahrefs.github.io/ocamlformat/> [58 parameters] <https://raw.githubusercontent.com/ocaml-ppx/ocamlformat/main/ocamlformat-help.txt> [positions available] <https://ahrefs.com/jobs> Release of optiml-transport ═══════════════════════════ Archive: <https://discuss.ocaml.org/t/ann-release-of-optiml-transport/10128/1> Igarnier announced ────────────────── Hi! [optiml-transport] was just released on opam. This library binds C++ primitives to solve the [optimal transportation](<https://en.wikipedia.org/wiki/Transportation_theory_(mathematics)>) problem between finite weighted point clouds (i.e. finite measures). Concretely, this allows to lift any [metric] on a base space to a metric on finitely supported probability measures over that base space. (In fact, the library works with cost functions more general than that satisfying the metric axioms.) The library also outputs an optimal coupling between any two such measures. Optimal transportation has many applications in statistics, graphics, optimization, etc. The library consists in bindings to <https://github.com/nbonneel/network_simplex> [optiml-transport] <https://github.com/igarnier/optiml-transport> [metric] <https://en.wikipedia.org/wiki/Metric_space> Old CWN ═══════ If you happen to miss a CWN, you can [send me a message] and I'll mail it to you, or go take a look at [the archive] or the [RSS feed of the archives]. If you also wish to receive it every week by mail, you may subscribe [online]. [Alan Schmitt] [send me a message] <mailto:alan.schmitt@polytechnique.org> [the archive] <https://alan.petitepomme.net/cwn/> [RSS feed of the archives] <https://alan.petitepomme.net/cwn/cwn.rss> [online] <http://lists.idyll.org/listinfo/caml-news-weekly/> [Alan Schmitt] <https://alan.petitepomme.net/> [-- Attachment #2: Type: text/html, Size: 29182 bytes --]
===================================== Last call for papers (CSL'23) https://csl2023.mimuw.edu.pl/ Abstract submission deadline: July 9, 2022 (AoE) ===================================== Computer Science Logic (CSL) is the annual conference of the European Association for Computer Science Logic (EACSL), see https://www.eacsl.org/. It is an interdisciplinary conference, spanning across both basic and application oriented research in mathematical logic and computer science. CSL'23 will be held on February 13-16, 2023, in Warsaw, Poland, with satellite workshops on February 17. It is planned as an on-site event, with support for remote presence for those participants who are unable to come for pandemic reasons. In case of a deteriorating pandemic situation, we may decide to organize the conference as an online-only event. The final decision about this will be made in November 2022. Keynote speakers: ---------------------- - Claudia Faggian (Université de Paris, France) - Nina Gierasimczuk (Danish Technical University, Denmark) - Dale Miller (Inria Saclay, France) - Michał Pilipczuk (University of Warsaw, Poland) - Davide Sangiorgi (University of Bologna, Italy) Submission guidelines: ---------------------- Submitted papers must be in English and must provide sufficient detail to allow the Programme Committee to assess the merits of the paper. Full proofs may appear in a clearly marked technical appendix which will be read at the reviewers' discretion. Authors are strongly encouraged to include a well written introduction which is directed at all members of the PC. The paper should be submitted via Easychair: https://easychair.org/conferences/?conf=csl2023 The CSL 2023 conference proceedings will be published in Leibniz International Proceedings in Informatics (LIPIcs), see https://submission.dagstuhl.de/documentation/authors. Authors are invited to submit contributed papers of no more than 15 pages in LIPIcs style (not including appendices or references), presenting unpublished work fitting the scope of the conference. Papers may not be submitted concurrently to another conference with refereed proceedings. The PC chairs should be informed of closely related work submitted to a conference or a journal. Papers authored or co-authored by members of the PC are not allowed. At least one of the authors of each accepted paper is expected to register for the conference in order to present their papers. Important dates: ---------------- Abstract submission: July 9, 2022 (AoE), Paper submission: July 16, 2022 (AoE), Notification: September 30, 2022, Final version: October 30, 2022, Conference: February 13-16, 2023 List of topics: --------------- The following list is not exhaustive but indicates the scope of interest for CSL'23: - automated deduction and interactive theorem proving - constructive mathematics and type theory - equational logic and term rewriting - automata and games, game semantics - modal and temporal logic - model checking - decision procedures - logical aspects of computational complexity - finite model theory - computability - computational proof theory - logic programming and constraints - lambda calculus and combinatory logic - domain theory - categorical logic and topological semantics - database theory - specification, extraction and transformation of programs - logical aspects of quantum computing Programme Committee: ------------------ Matteo Acclavio (University of Luxembourg, Luxembourg) Patricia Bouyer-Decitre (LSV, CNRS & ENS Paris-Saclay, France) Agata Ciabattoni (TU Wien, Austria) Diana Costa (University of Lisbon, Portugal) Martín Escardó (University of Birmingham, UK) Rajeev Goré (The Australian National University, Australia) Giulio Guerrieri (Huawei Edinburgh Research Centre, UK) Shin-ya Katsumata (National Institute of Informatics, Japan) Delia Kesner (Université de Paris, France) Sandra Kiefer (RWTH Aachen University, Germany) Bartek Klin (University of Oxford, UK, co-chair) Naoki Kobayashi (The University of Tokyo, Japan) Stepan Kuznetsov (Steklov Mathematical Institute of RAS, Russia) Martin Lück (Leibniz Universität Hannover, Germany) Meena Mahajan (The Institute of Mathematical Sciences, HBNI, India) Filip Murlak (University of Warsaw, Poland) Daniele Nantes (University of Brasília, Brazil) Elaine Pimentel (UCL, UK, co-chair) Paolo Pistone (University of Bologna, Italy) Ana Sokolova (University of Salzburg, Austria) Lutz Straßburger (Inria Saclay – Île-de-France, France) Pascal Schweitzer (TU Darmstadt, Germany) Martin Zimmermann (Aalborg University, Denmark) Yoni Zohar (Bar Ilan University, Israel) Organisation committee: ----------------- Lorenzo Clemente (chair) Wojciech Czerwiński Radosław Piórkowski
[-- Attachment #1: Type: text/plain, Size: 5057 bytes --] ** Apologies if you receive multiple copies of this CFP ** ** Please forward to anyone who might be interested ** ============ Call for Paper: ============ *Springer* *2022 4th International Conference on Soft Computing and its Engineering Applications (icSoftComp2022) * https://www.charusat.ac.in/icSoftComp2022/index.php Charotar University of Science and Technology (CHARUSAT) , Changa, India December 09-10, 2022 Conference proceedings by Springer CCIS Series (Scopus indexed) Conference series link(s): https://link.springer.com/conference/icsoftcomp Paper submission links: https://equinocs.springernature.com/service/icSoftComp2022 ============== Important Notes: ============== · icSoftComp2022 follows a double-blind peer review system. · Please follow the Springer CCIS format for paper submission. · Authors of selected papers will be invited to submit extended article versions for a post-conference special issue of peer reviewed Scopus indexed journals. 2022 4th International Conference on Soft Computing and its Engineering Applications (icSoftComp2022) aims to provide an excellent international forum to the researchers, academicians, students, and professionals in the areas of computer science and engineering to present their research, knowledge, new ideas and innovations. It will exhibit an exciting technical program. It will also feature high-quality Tutorials and Workshops, Industry Panels and Exhibitions, as well as Keynotes from prominent research and industry leaders. We are now open for technical paper submission. ================ Paper Publication: ================ The accepted and presented papers will be published as proceedings with Springer in their prestigious Communications in Computer and Information Science (CCIS) series. Indexed by Scopus, DBLP, Ei Compendex, Google Scholar, and Springerlink ================ Journal Publication: ================ Authors of selected papers will be invited to submit extended article versions for a post-conference special issue of peer-reviewed journals. ================ Paper Submission: ================ Paper submission links: https://equinocs.springernature.com/service/icSoftComp2022 icSoftComp2022 solicits papers on all aspects of Soft computing and its engineering applications for smart and better world. The topics of the conference include, but are not limited to the following: *Track 1: Theory and Methods* Ant colony theory Approximate reasoning Artificial Intelligence (AI) Big Data analytics Bio-inspired computing Chaos theory Cognitive science Data mining and Knowledge discovery Deep learning Digital information processing Evolutionary computing Fuzzy set theory Immunological computing Knowledge virtualization Machine learning Modeling Neural computing Probabilistic reasoning Rough sets Swarm intelligence *Track 2: Systems and Applications* Advanced intelligent systems Agent-based systems Agricultural informatics Assistive systems Autonomic and autonomous systems Bioinformatics and scientific computing Cognitive systems and applications Complex systems Computer forensics Cyber Physical Systems (CPS) Human computer interation Internet of Things (IoT) Intrusion detection and Security intelligence Mechatronics Multi-agent systems Natural language processing Network and telecommunications systems Optimization Pattern recognition Process control Remote sensing system Robotics Signal processing Time series forecasting Web intelligence *Track 3: Hybrid Techniques* Auxiliary hybridization Embedded hybridization Fuzzy-genetic approach Neuro-evolutionary computing Neuro-fuzzy computing Sequential hybridization *Track 4: Soft Computing for Smart Sustainable World* Smart cities Smart governance Smart healthcare Smart homes and buildings Smart social services Smart transportation Smart utilities Smart vehicles Smart villages ============== Important Dates: ============== Submission due: 31/07/2022 Acceptance Notification: 30/09/2022 Camera Ready Paper Submission due: 31/10/2022 Last date of registration: 31/10/2022 Conference dates: 09-10/12/2022 ============================ Previous conference proceedings: ============================ - icSoftComp2021 https://link.springer.com/book/10.1007/978-3-031-05767-0 - icSoftComp2020 https://www.springer.com/gp/book/9789811607073 - icSoftComp2017 https://ieeexplore.ieee.org/xpl/conhome/8269416/proceeding ----------------------------------- Warm regards, K. K. Patel, Ph.D., Charotar University of Science & Technology (CHARUSAT) (Center of Excellence by Govt. of Gujarat) (Accredited "A" grade by NAAC, GoI) Cell#: +91-820 010 3724 https://www.charusat.ac.in/icSoftComp2022/ *------------------------------* [-- Attachment #2: Type: text/html, Size: 33104 bytes --]
[-- Attachment #1: Type: text/plain, Size: 9063 bytes --] Hello Here is the latest OCaml Weekly News, for the week of June 21 to 28, 2022. The mailing list mode of discuss.ocaml.org seems to have been down for a few days, so I had to manually scrape the messages. My apologies if I missed any. Table of Contents ───────────────── An amusing use of first-class modules: reading from plaintext and compressed files Lwt.5.6.0 (and other Lwt packages) Old CWN An amusing use of first-class modules: reading from plaintext and compressed files ══════════════════════════════════════════════════════════════════════════════════ Archive: <https://discuss.ocaml.org/t/an-amusing-use-of-first-class-modules-reading-from-plaintext-and-compressed-files/10073> Chet_Murthy explained ───────────────────── I was recently trying to write a thing in Rust, and having problems, so I wrote the same thing in OCaml, just to make sure that it was doable. I thought I’d post about it, b/c maybe it’s an example of what we’ll find more tractable, once we have modular implicits. The problem: I have both compressed and plaintext files, and I want to run a function over the uncompressed contents. I’d like a combinator that I can apply to the filename and the function, that will do the work of opening the file, calling the function, closing the file, etc. This isn’t so hard. 1. define a type of READER (and two instances for plaintext and gzipped). This is the equivalent of Rust’s “io::BufRead”. ┌──── │ module type READER = │ sig │ type in_channel │ val open_in : string -> in_channel │ val input_char : in_channel -> char │ val close_in : in_channel -> unit │ end │ let stdreader = (module Stdlib : READER) ;; │ let gzreader = (module Gzip : READER) ;; └──── 2. then define a type of “in channel user” (“ICUSER”) and the generic version of it ┌──── │ module type ICUSER = sig │ type in_channel │ val use_ic : in_channel -> unit │ end │ module type GENERIC_ICUSER = functor (R : READER) -> (ICUSER with type in_channel = R.in_channel) └──── 3. then define our function that takes a generic in_channel, and uses it – “Cat” ┌──── │ module Cat(R : READER) : ICUSER with type in_channel = R.in_channel = struct │ type in_channel = R.in_channel │ let use_ic ic = │ let rec rerec () = │ match R.input_char ic with │ c -> print_char c ; rerec () │ | exception End_of_file -> () │ in rerec () │ end └──── 4. And then write our “with_input_file” function, that takes a filename, the function from #3, and applies it to either a normal in_channel, or one produced from a gzip-reader. ┌──── │ let with_input_file fname (module R : GENERIC_ICUSER) = │ let (module M : READER) = │ if Fpath.(fname |> v |> has_ext "gz") then │ gzreader │ else stdreader in │ let open M in │ let ic = M.open_in fname in │ let module C = R(M) in │ try let rv = C.use_ic ic in close_in ic ; rv │ with e -> close_in ic ; raise e └──── And now we can use it: ┌──── │ with_input_file "/etc/passwd" (module Cat) ;; │ with_input_file "foo.gz" (module Cat) ;; └──── Easy-peasy. I don’t remember enough about the modular implicits proposal to remember if this can be cast in the supported language there, so I suppose I should get some version of that code (or the newer versions from others) up-and-running, and see if this can be made to work. hyphenrf asked and Chet_Murthy replied ────────────────────────────────────── can’t we get rid of the `GENERIC_ICUSER' requirement and just ask for functions that take a packed module of type `READER' by that I mean the signature of `with_input_file' becomes `string -> ((module READER) -> 'a) -> 'a' It’s a good question, and as a newbie user of first-class modules, I don’t know the typing rules well enough to answer. But I did try: ┌──── │ let with_input_file' fname f = │ let (module M : READER) = │ if Fpath.(fname |> v |> has_ext "gz") then │ gzreader │ else stdreader in │ let open M in │ let ic = M.open_in fname in │ f (module M : READER) ic └──── and got ┌──── │ File "ioabs.ml", line 96, characters 24-26: │ 96 | f (module M : READER) ic │ ^^ │ Error: This expression has type M.in_channel │ but an expression was expected of type 'a │ The type constructor M.in_channel would escape its scope └──── ETA: I remember in the modular implicits paper, that there was a lot of wrappering code in structs (that didn’t start off in structs). I wonder if that’s evidence that you really do have to “push up” code to the module level in order to make it work. octachron then said ─────────────────── You don’t need modular implicits to simplify your code. Your packed module type is equivalent to: ┌──── │ type channel = { input_char: unit -> char; close_in: unit -> unit } │ type channel_generator = string -> channel └──── We could go fancy and manifest the type with an existential ┌──── │ type 'a channel = │ { open_fn: string -> 'a; input_char: 'a -> char; close_in: 'a -> unit } │ type chan = Any: 'a channel -> chan └──── but this has mainly the advantage to illustrate the fact that you are never using the non-existentially qualified `'a channel' which means that in the current version of your code, modular (explicits or) implicits is not a good fit: we are not selecting a module to provide functions for a type, we have an object (aka an existentially qualified record) with some hidden inner type that we never need to know. c-cube later said ───────────────── I think it’s kind of counter-productive to want a `in_channel' type at all. This is what I’ve been doing, more and more: ┌──── │ module type INPUT = sig │ val read_char : unit -> char │ val read : bytes -> int -> int -> int │ val close : unit -> unit │ end │ │ type input = (module INPUT) │ │ let open_file (filename:string) : input = │ let ic = open_in filename in │ (module struct │ let read_char() = input_char ic │ let read = input ic │ let close() = close_in ic │ end) │ │ │ let do_sth (module IN:INPUT) = │ IC.read_char (); │ IC.read … └──── This behaves like classic objects in other languages and there’s no complicated typing going on (what with each implementation having its own channel type). Lwt.5.6.0 (and other Lwt packages) ══════════════════════════════════ Archive: <https://discuss.ocaml.org/t/ann-lwt-5-6-0-and-other-lwt-packages/10077> raphael-proust announced ──────────────────────── It is a real pleasure to announce the release of Lwt version 5.6.0 as well as Lwt-domain.0.2.0, Lwt-ppx.2.1.0 and Lwt-react.1.2.0. With this release Lwt is now compatible with OCaml version 5. <https://github.com/ocsigen/lwt/releases/tag/5.6.0> Thank you to the many contributors for the fixes, the improvements, and the OCaml5 compatibility! Check out the changelog for full details on each contribution. Old CWN ═══════ If you happen to miss a CWN, you can [send me a message] and I'll mail it to you, or go take a look at [the archive] or the [RSS feed of the archives]. If you also wish to receive it every week by mail, you may subscribe [online]. [Alan Schmitt] [send me a message] <mailto:alan.schmitt@polytechnique.org> [the archive] <https://alan.petitepomme.net/cwn/> [RSS feed of the archives] <https://alan.petitepomme.net/cwn/cwn.rss> [online] <http://lists.idyll.org/listinfo/caml-news-weekly/> [Alan Schmitt] <https://alan.petitepomme.net/> [-- Attachment #2: Type: text/html, Size: 27825 bytes --]
[-- Attachment #1: Type: text/plain, Size: 2927 bytes --] [Apologies if you receive multiple copies of this message] CfP: CoSim-CPS, 6th Workshop on Formal Co-Simulation of Cyber-Physical Systems A satellite event of SEFM 2022, September 27, 2022, Berlin, Germany Submission due: Sunday 31 July 2022 Website: https://sites.google.com/view/cosimcps2022/home Categories: simulation, formal methods, modeling, systems engineering, and co-simulation -------------------------------------------------------------------------------------------------------- CoSim-CPS is a workshop on the integrated application of formal methods and co-simulation technologies in the development of software for Cyber-Physical Systems. Topics of interest include, but are not limited to: - Development of new co-simulation methods and tools - Integration of formal methods technologies in co-simulation methods and tools - Experience reports on using existing co-simulation methods and tools - Emerging standards for co-simulation - Modeling and analysis of safety properties of cyber-physical systems through co-simulation - Modeling and analysis of human-machine interfaces in cyber-physical systems through co-simulation - Modeling and analysis of security aspects of cyber-physical systems through co-simulation - Co-simulation of the next-generation cyber-physical systems - Co-simulation in self-adaptive and digital twin systems SUBMISSION GUIDELINES & PROCEEDINGS: * Papers will be reviewed by at least 3 PC members. * Proceedings might be published (under discussion) in Springer's Lecture Notes in Computer Science series. * All speakers will be required to register and give a talk in person. Talks will be streamed online. IMPORTANT DATES * Abstract submission (optional): Sunday 24 July 2022 * Paper submission: Sunday 31 July 2022 * Notification: Wednesday 31 August 2022 * Camera-ready version: Monday 19 September 2022 * Workshop date: Tuesday 27 September 2022 PC CO-CHAIRS - Cinzia Bernardeschi, University of Pisa, Italy - Claudio Gomes, Aarhus University, Denmark - Maurizio Palmieri, University of Pisa, Italy - Paolo Masci, National Institute of Aerospace (NIA), USA Program Committee - Aaron Dutle, NASA Langley Reserach Center, USA - Adriano Fagiolini, University of Palermo, Ital - Andrea Domenici, University of Pisa, Italy - Francesco Flammini, Mälardalen University, Sweden - Francisco J. González, University of A Coruña, Spain - Holger Pfeifer, fortiss GmbH, Germany - Hugo Daniel Macedo, Aarhus University, Denmark - Jörg Brauer, Verified Systems International GmbH, Germany - Julien Alexandre Dit Sandretto, Ensta ParisTech, France - Ken Pierce, Newcastle University, UK - Neeraj Singh, INPT-ENSEEIHT / IRIT and University of Toulouse, France - Paul De Meulenaere, University of Antwerp, Belgium - Rudolf Schlatte, University of Oslo, Norway - Stylianos Basagiannis, Collins Aerospace, Ireland [-- Attachment #2: Type: text/html, Size: 3919 bytes --]
[-- Attachment #1: Type: text/plain, Size: 3209 bytes --] ** Apologies if you receive multiple copies of this CFP ** ** Please forward to anyone who might be interested ** =============================== Call for Paper: *Springer* 2022 4th International Conference on Soft Computing and its Engineering Applications (icSoftComp2022) https://www.charusat.ac.in/icSoftComp2022/index.php December 09-10, 2022 Conference proceedings by* Springer CCIS Series (Scopus indexed)* *Conference series link(s)*: icSoftComp: International Conference on Soft Computing and its Engineering Applications <https://link.springer.com/conference/icsoftcomp> *Paper submission links:* https://equinocs.springernature.com/service/icSoftComp2022 =============================== *Important Notes:* · icSoftComp2022 follows a double-blind peer review system. · Please follow the Springer CCIS format for paper submission. · Authors of selected papers will be invited to submit extended article versions for a post-conference special issue of peer reviewed Scopus indexed journals. 2022 4th International Conference on Soft Computing and its Engineering Applications (icSoftComp2022) aims to provide an excellent international forum to the researchers, academicians, students, and professionals in the areas of computer science and engineering to present their research, knowledge, new ideas and innovations. It will exhibit an exciting technical program. It will also feature high-quality Tutorials and Workshops, Industry Panels and Exhibitions, as well as Keynotes from prominent research and industry leaders. We are now open for technical paper submission. *Previous conference proceedings:* - icSoftComp2021 https://link.springer.com/book/10.1007/978-3-031-05767-0 - icSoftComp2020 https://www.springer.com/gp/book/9789811607073 - icSoftComp2017 https://ieeexplore.ieee.org/xpl/conhome/8269416/proceeding *Paper Publication:* The accepted and presented papers will be published as proceedings with Springer in their prestigious Communications in Computer and Information Science (CCIS) series. Indexed by Scopus, DBLP, Ei Compendex, Google Scholar, and Springerlink *Journal Publication:* Authors of selected papers will be invited to submit extended article versions for a post-conference special issue of peer-reviewed journals. *Paper Submission:* Novel research in all practical areas of soft computing is sought. *Paper submission links:* https://equinocs.springernature.com/service/icSoftComp2022 *Important Dates:* Submission due: 31/07/2022 Acceptance Notification: 30/09/2022 Camera Ready Paper Submission due: 31/10/2022 Last date of registration: 31/10/2022 Conference dates: 09-10/12/2022 ----------------------------------- Warm regards, K. K. Patel, Ph.D., Charotar University of Science & Technology (CHARUSAT) (Center of Excellence by Govt. of Gujarat) (Accredited "A" grade by NAAC, GoI) Cell#: +91-820 010 3724 *https://www.charusat.ac.in/icSoftComp2022/* <https://www.charusat.ac.in/icSoftComp2022/> *------------------------------* [-- Attachment #2: Type: text/html, Size: 24921 bytes --]
[-- Attachment #1: Type: text/plain, Size: 17329 bytes --] Hello Here is the latest OCaml Weekly News, for the week of June 14 to 21, 2022. Table of Contents ───────────────── OBazl Toolsuite - tools for building OCaml with Bazel Job offer: 3 years compiler engineer at the French tax authority OCaml 5.0, zeroth alpha release Tezt, a framework for all your tests OCaml Stdlib, Containers, Batteries, Base and F# core functions comparisons Dune 3.3.0 Old CWN OBazl Toolsuite - tools for building OCaml with Bazel ═════════════════════════════════════════════════════ Archive: <https://discuss.ocaml.org/t/obazl-toolsuite-tools-for-building-ocaml-with-bazel/10021/1> Gregg Reynolds announced ──────────────────────── Version 2 of OBazl, a Bazel ruleset for building OCaml code, will soon be available. I'm letting you know early because I'll be giving a presentation about the OBazl Toolsuite for the [Bazel Exchange] conference next Wed, 22 June, at 3:00 pm UDT (10:00 am CDT). It's a virtual conference so you can tune in from anywhere. The talk will focus on some of the quirks of the OCaml build discipline and how I addressed them for the OBazl ruleset. The tools are usable now, they're just not yet properly documented and packaged, and in a few places there's a little more work to be done on the code. Nonetheless there is quite a bit of documentation (CAVEAT: some of it is outdated), with more on the way soon, and there are lots of demos available. So if you're interested in using Bazel to build your OCaml code I welcome you to take a look: [The OBazl Book] Twitter handle is @obazldev Discord: [https://discord.gg/PHSAW5DUva] [Bazel Exchange] <https://skillsmatter.com/conferences/13682-bazel-exchange> [The OBazl Book] <https://obazl.github.io/docs_obazl/> [https://discord.gg/PHSAW5DUva] <https://discord.gg/PHSAW5DUva> Gregg Reynolds lated added ────────────────────────── PS. The conference organizers have provided this discount token: BAZEL-GR-20 It should be good for 20% off, registration is at [https://events.skillsmatter.com/bazelx2022] [https://events.skillsmatter.com/bazelx2022] <https://events.skillsmatter.com/bazelx2022> Job offer: 3 years compiler engineer at the French tax authority ════════════════════════════════════════════════════════════════ Archive: <https://discuss.ocaml.org/t/job-offer-3-years-compiler-engineer-at-the-french-tax-authority/10023/1> Denis Merigoux announced ──────────────────────── [En français parce que c'est une offre d'emploi dans l'administration] Bonjour à toutes et à tous, Vous aimez la programmation fonctionnelle et les compilateurs ? Vous en avez marre des offres d'emploi dans la blockchain ? Ça tombe bien, j'ai ce qu'il vous faut ! Il y a deux ans, j'ai lancé un grand projet de modernisation du calcul informatique de calcul de l'impôt sur le revenu à la Direction Générale des Finances Publiques (DGFiP), en partenariat avec Inria: <https://www.inria.fr/fr/mlang-modernisation-calcul-impot-revenu>. Le logiciel au cœur de ce projet de modernisation est Mlang, un compilateur écrit en OCaml pour un couple de langages dédiés utilisés par la DGFiP pour encoder le calcul de l'impôt sur le revenu. Depuis deux ans, la DGFiP travaille à intégrer Mlang à l'infrastructure officielle de calcul de l'impôt sur le revenu pour remplacer des systèmes vieillissants. C'est donc un projet à très fort impact (80M€ par d'impôts par an), et proche de la R&D (OCaml, libre, innovation) ! Depuis un an, la DGFiP emploie la société OCamlPro sur le projet mais souhaite maintenant ré-internaliser ses compétences pour garder la souveraineté numérique sur son infrastructure de calcul. C'est là que cette offre d'emploi entre en jeu ! En effet la DGFiP vient d'ouvrir un poste en CDD de 3 ans pour un.e expert.e en compilation ! Les détails : • Bureaux à Noisy-le-Grand (+ jusqu'à 3 jours télétravail/semaine) • Salaire: À négocier selon expérience mais similaire à "Inspecteur des finances publiques". Selon le site du ministère de l'économie ça débuterait à 3k€ net/mois. • Tâches: Maintenance, évolution de Mlang et travaux annexes Et pour l'heureux.se recruté.e, la cerise sur le gâteau sera de pouvoir collaborer avec moi et l'équipe Prosecco d'Inria (ainsi que Raphaël Monat, ) :) Attention cependant : il faudra s'attendre à devoir également aider l'équipe de la DGFiP sur d'autres chantiers en fonction des priorités. De même, l'objectif est de partager la compétence en compilation au sein de la DGFiP, donc les profils évangélisateurs de la programmation fonctionnelle sont les bienvenus ! Pour référence, voici l'offre officielle complète: <https://merigoux.ovh/assets/OffreDGFiP.pdf>. S'il vous plaît, pas d'autocensure à cause de ce qui est marqué dans ce PDF! Si vous avez un doute contactez-moi par retour de mail. Deadline pour les candidatures: 9 juillet. Prise de poste inconnue, sûrement aux alentours du 1er septembre mais j'imagine que c'est négociable. Denis Merigoux later added ────────────────────────── Si vous êtes intéressé.e, envoyez votre CV et lettre de motivation à bureau.si-part-rh@dgfip.finances.gouv.fr et bureau.rh-mobilite-carriere-a-recrutementchoix@dgfip.finances.gouv.fr. OCaml 5.0, zeroth alpha release ═══════════════════════════════ Archive: <https://discuss.ocaml.org/t/ocaml-5-0-zeroth-alpha-release/10026/1> octachron announced ─────────────────── Five months after the initial merge of the multicore branch into the mainline OCaml and three months after the release of OCaml 4.14.0, OCaml 5.0.0 is starting to take shape. I am thus happy to announce an exceptional zeroth alpha release of OCaml 5.0.0 (see below for the installation instructions). This alpha release is expected to be rougher than an usual alpha release, due to the full rewrite of the OCaml runtime. In particular, the bytecode debugger will only be available in the next alpha release. Similarly, there will be some changes to the internal C runtime API and to the files installed by the compiler package in the next alpha release. Moreover, this zeroth alpha release is the occasion to remind everyone that OCaml 5.0 itself is expected to be a more experimental release than usual. Notably, the native compiler will only be available on the ARM64 and x86-64 architectures in this 5.0 release. Nevertheless, this zeroth alpha version is already stable enough for fellow hackers eager to join us in our early bug hunting and opam ecosystem fixing fun, or to venture in the new era of parallelism and (experimental) effects. You can follow the progresses in stabilising the opam ecosystem on <https://github.com/ocaml/opam-repository/issues/21526> A brief summary is that at least dune, merlin, ppxlib, utop, ocamlfind, and ocamlbuild work (potentially by using patches from the alpha opam repository). If you find any bugs, please report them here: <https://github.com/ocaml/ocaml/issues> In particular, any sequential OCaml 4 library or program should be valid in OCaml 5 (except for deprecated modules and functions). Please don't hesitate to report any compatibility bugs! If you are interested by the ongoing list of bug fixes, the updated change log for OCaml 5.0.0 is available at: <https://github.com/ocaml/ocaml/blob/5.0/Changes> Installation instructions ╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌ ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― The base compiler can be installed as an opam switch with the following commands on opam 2.1: ┌──── │ opam update │ opam switch create 5.0.0~alpha0 └──── For previous version of opam, the switch creation command line is slightly more verbose: ┌──── │ opam update │ opam switch create 5.0.0~alpha0 --repositories=default,beta=git+https://github.com/ocaml/ocaml-beta-repository.git └──── If you want to tweak the configuration of the compiler, you can switch to the option variant with: ┌──── │ opam update │ opam switch create <switch_name> ocaml-variants.5.0.0~alpha0+options <option_list> └──── where `<option_list>' is a comma separated list of `ocaml-option-*' packages. For instance, for a flambda and no-flat-float-array switch: ┌──── │ opam switch create 5.0.0~alpha0+flambda+nffa ocaml-variants.5.0.0~alpha0+options ocaml-option-flambda │ ocaml-option-no-flat-float-array └──── The command line above is slightly more complicated for an opam version anterior to opam 2.1: ┌──── │ opam update │ opam switch create <switch_name> --packages=ocaml-variants.5.0.0~alpha0+options,<option_list> │ --repositories=default,beta=git+https://github.com/ocaml/ocaml-beta-repository.git └──── In both cases, all available options can be listed with `opam search ocaml-option'. If you want to test this version, it is strongly advised to install the alpha opam repository <https://github.com/kit-ty-kate/opam-alpha-repository> with ┌──── │ opam repo add alpha git://github.com/kit-ty-kate/opam-alpha-repository.git └──── This alpha repository contains various fixes in the process of being upstreamed. The source code for the alpha is also available at these addresses: • <https://github.com/ocaml/ocaml/archive/5.0.0-alpha0.tar.gz> • <https://caml.inria.fr/pub/distrib/ocaml-5.0/ocaml-5.0.0~alpha0.tar.gz> Daniel Bünzli asked and octachron replied ───────────────────────────────────────── Does this mean we get [global warming] again ? Indeed! I should have mentioned that point! The normal development process can restart on the compiler development branch. I will also try to slowly go through the backlog of frozen PRs once the alpha releases settle down. [global warming] <https://discuss.ocaml.org/t/the-road-to-ocaml-5-0/8584#the-sequential-glaciation-3> Tezt, a framework for all your tests ════════════════════════════════════ Archive: <https://discuss.ocaml.org/t/ann-tezt-a-framework-for-all-your-tests/10038/1> rbardou announced ───────────────── Tezt (pronounced [/tɛzti/]) is a test framework for OCaml that has been developed and used at Nomadic Labs to test [Octez], an OCaml implementation of the Tezos blockchain. It has become quite mature and we feel it would benefit the OCaml community at large, so we are releasing it publicly as a standalone product. Tezt is well-suited for unit tests, integration tests, and regression tests in particular. It was designed with a focus on user experience, with colourful logs, various ways to select the tests to run from the command-line, and more. It integrates well into CI pipelines. And it cleans up after itself, deleting temporary files and killing external processes. Unless you tell it not to, of course. For a more in-depth tour of Tezt, see [our latest blog post entry]. Tezt is available on opam: ┌──── │ opam install tezt └──── Have a look at the [API documentation] and the [source code]. [/tɛzti/] <http://ipa-reader.xyz/?text=t%C9%9Bzti> [Octez] <https://research-development.nomadic-labs.com/announcing-octez.html> [our latest blog post entry] <https://research-development.nomadic-labs.com/announcing-tezt.html> [API documentation] <https://tezos.gitlab.io/api/odoc/_html/tezt/Tezt/index.html> [source code] <https://gitlab.com/tezos/tezos/-/tree/master/tezt/lib> OCaml Stdlib, Containers, Batteries, Base and F# core functions comparisons ═══════════════════════════════════════════════════════════════════════════ Archive: <https://discuss.ocaml.org/t/ocaml-stdlib-containers-batteries-base-and-f-core-functions-comparisons/10041/1> Jp R announced ────────────── <https://github.com/Fourchaux/OCaml-Stdlib_Containers_Batteries_Base-and-FSharp--core-functions-comparisons> Comparisons (names/signatures) of the core functions used in: • OCaml Stdlib (v4.41.0) • Containers (v3.8) • Batteries (v3.5.1) • Base (v0.15.0) • F# (v6.0) as a bonus Note: F# provides an Array.Parallel module with some functions (choose, collect, init, iter, iteri, map, mapi, partition) which could be good candidates for OCaml 5.0.0… Dune 3.3.0 ══════════ Archive: <https://discuss.ocaml.org/t/ann-dune-3-3-0/10048/1> Etienne Millon announced ──────────────────────── On behalf of the dune team, I’m pleased to announce the release of version 3.3.0. This is the first version that supports the upcoming OCaml 5.0. It also improves safety by sandboxing more rules and enabling more warnings, and there's a bunch of new features on the coq side too. Full changelog follows. Note that as usual, dune works hard not to break existing packages. So even if it mentions that rules require precise dependencies, for example, this new safety net is only enabled for project that use `(lang dune 3.3)'. Happy hacking. 3.3.0 (17-06-2022) ╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌ • Sandbox preprocessing, lint, and dialect rules by default. All these rules now require precise dependency specifications (#5807, @rgrinberg) • Allow list expansion in the `pps' specification for preprocessing (#5820, @Firobe) • Add warnings 67-69 to dune's default set of warnings. These are warnings of the form "unused X.." (#5844, @rgrinberg) • Introduce project "composition" for coq theories. Coq theories in separate projects can now refer to each other when in the same workspace (#5784, @Alizter, @rgrinberg) • Fix hint message for `data_only_dirs' that wrongly mentions the unknown constructor `data_only' (#5803, @lambdaxdotx) • Fix creating sandbox directory trees by getting rid of buggy memoization (#5794, @rgrinberg, @snowleopard) • Handle directory dependencies in sandboxed rules. Previously, the parents of these directory dependencies weren't created. (#5754, @rgrinberg) • Set the exit code to 130 when dune is terminated with a signal (#5769, fixes #5757) • Support new locations of unix, str, dynlink in OCaml >= 5.0 (#5582, @dra27) • The `coq.theory' stanza now produces rules for running `coqdoc'. Given a theory named `mytheory', the directory targets `mytheory.html/' and `mytheory.tex/' or additionally the aliases `@doc' and `@doc-latex' will build the HTML and LaTeX documentation repsectively. (#5695, fixes #3760, @Alizter) • Coq theories marked as `(boot)' cannot depend on other theories (#5867, @ejgallego) • Ignore `bigarray' in `(libraries)' with OCaml >= 5.0. (#5526, fixes #5494, @moyodiallo) • Start with :standard when building the ctypes generated foreign stubs so that we include important compiler flags, such as -fPIC (#5816, fixes #5809). Old CWN ═══════ If you happen to miss a CWN, you can [send me a message] and I'll mail it to you, or go take a look at [the archive] or the [RSS feed of the archives]. If you also wish to receive it every week by mail, you may subscribe [online]. [Alan Schmitt] [send me a message] <mailto:alan.schmitt@polytechnique.org> [the archive] <https://alan.petitepomme.net/cwn/> [RSS feed of the archives] <https://alan.petitepomme.net/cwn/cwn.rss> [online] <http://lists.idyll.org/listinfo/caml-news-weekly/> [Alan Schmitt] <https://alan.petitepomme.net/> [-- Attachment #2: Type: text/html, Size: 28465 bytes --]
unsubscribe