From zubin at well-typed.com Mon Jul 1 09:39:14 2024 From: zubin at well-typed.com (Zubin Duggal) Date: Mon, 1 Jul 2024 15:09:14 +0530 Subject: [Haskell-cafe] [ANNOUNCE] GHC 9.6.6 is now available Message-ID: <7vc5hz2hk3rgaxbic2paonhuctnl3ze32wml5rvr3fgd7yhfyk@ulc5hg2uateq> The GHC developers are happy to announce the availability of GHC 9.6.6. Binary distributions, source distributions, and documentation are available on the [release page](https://www.haskell.org/ghc/download_ghc_9_6_6.html). Blog Post: https://www.haskell.org/ghc/blog/20240701-ghc-9.6.6-released.html This release is primarily a bugfix release addressing some issues found in the 9.6 series. These include: * A fix for a bug in the NCG that could lead to incorrect runtime results due to erroneously removing a jump instruction (#24507). * A fix for a linker error that manifested on certain platform/toolchain combinations, particularly darwin with a brew provisioned toolchain, arising due to a confusion in linker options between GHC and cabal (#22210). * A fix for a compiler panic in the simplifier due to incorrect eta expansion (#24718). * A fix for possible segfaults when using the bytecode interpreter due to incorrect constructor tagging (#24870). * And a few more fixes A full accounting of changes can be found in the [release notes]. As some of the fixed issues do affect correctness users are encouraged to upgrade promptly. We would like to thank Microsoft Azure, GitHub, IOG, the Zw3rk stake pool, Well-Typed, Tweag I/O, Serokell, Equinix, SimSpace, Haskell Foundation, and other anonymous contributors whose on-going financial and in-kind support has facilitated GHC maintenance and release management over the years. Finally, this release would not have been possible without the hundreds of open-source contributors whose work comprise this release. As always, do give this release a try and open a [ticket][] if you see anything amiss. Happy Hacking! -Zubin [ticket]: https://gitlab.haskell.org/ghc/ghc/-/issues/new [release notes]: https://downloads.haskell.org/~ghc/9.6.6/docs/users_guide/9.6.6-notes.html -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 488 bytes Desc: not available URL: From coot at coot.me Mon Jul 1 09:56:01 2024 From: coot at coot.me (coot) Date: Mon, 01 Jul 2024 09:56:01 +0000 Subject: [Haskell-cafe] [ANN] cabal-install-3.12.1.0 (and accompanying libraries) released In-Reply-To: References: Message-ID: Thanks Artem, and the cabal team! It's not tagged on github: https://github.com/haskell/cabal/releases Cheers, Marcin Sent with Proton Mail secure email. On Friday, 28 June 2024 at 20:31, Artem Pelenitsyn wrote: > Dear all, > > The cabal release team brings you the release of the `cabal-install` tool, version 3.12.1.0. This is the first release of the tool in the 3.12 series, and, hence, the first `cabal-install` supporting Cabal 3.12 packaged with GHC 9.10.1. We also update the three main libraries. > > - cabal-install: The command-line interface for Cabal and Hackage. > - Cabal: A framework for packaging Haskell software > - Cabal-syntax: A library for working with .cabal files > - cabal-install-solver: The command-line interface for Cabal and Hackage. > > The binaries for `cabal-install` are available on our website and can be installed via GHCup manually, e.g.: > > - Linux x86_64 (static, alpine3_18): > > ghcup --no-cache install cabal -u 'https://downloads.haskell.org/cabal/cabal-install-3.12.1.0/cabal-install-3.12.1.0-x86_64-linux-alpine3_18.tar.xz' 3.12.1.0 > > > - MacOS AArch64: > > ghcup --no-cache install cabal -u 'https://downloads.haskell.org/cabal/cabal-install-3.12.1.0/cabal-install-3.12.1.0-aarch64-darwin.tar.xz' 3.12.1.0 > > > - Windows: > > ghcup --no-cache install cabal -u 'https://downloads.haskell.org/cabal/cabal-install-3.12.1.0/cabal-install-3.12.1.0-x86_64-windows.zip' 3.12.1.0 > > > - or a similar command for your platform using the binaries provided on the website > - as usual, `cabal update && cabal install cabal-install-3.12.1.0` is an option too. > > We expect the official GHCup channel to be updated with the 3.12.1.0 binaries soon. > > What is new > ----------- > > Performance > > - Significant speedups during cabal startup due to use of the latest `tar` > > Project Organization > > - Support for asm, cmm, and js sources in executable components > - Support for per-component builds when coverage is enabled > - Haskell files in explicit source directories take precedence over autogenerated Haskell files > - Fix precedence for `PATH` for `build-tools-depends` (executables from `PATH` don’t shadow executables from `build-tool-depends` anymore) > > UX > > - Errors now have error codes, which will be documented on https://errors.haskell.org > - A new subcommand, `cabal path`, which can be used to get information about the paths cabal will use within a project > - Support for authentication tokens for uploading to Hackage > - `--(test-)show-details=direct` is now the default > - Shorten solver rejection messages by removing repetition > - Show provenance of project constraints > > Interaction with GHC > > - Support for loading multiple components into one repl session > - Support for the `--semaphore` flag to enable interaction with GHC Job Server protocol > - Support for `GHC2024` > - Support for language extensions `ExtendedLiterals`¸ `ListTuplePuns`, and `TypeAbstractions` > > Other Compilers > > - Micro Haskell (MHS) has been added as a known compiler. We don’t have support for driving it yet, though. > > See the release notes for more details and other changes. > > Contributors > ------------ > > 50^2, Adam Gundry, Andrea Bedini, Andreas Abel, Andreas Klebinger, Arjun Kathuria, Artem Pelenitsyn, BasLaa, Bas Laarakker, Ben Gamari, Bodigrim, Brandon Chinn, brandon s allbery kf8nh, Bryan Richter, Colton Clemmer, Csaba Hruska, cydparser, Daniel Trstenjak, David Binder, David Christiansen, Edwin Marshall, Elodie Lander, Erik de Castro Lopo, Felix Yan, fendor, Finley, Francesco Ariis, Francesco Gazzetta, Fraser Tweedale, Gershom Bazerman, Hamish Mackenzie, Hécate Moonlight, Ikko Eltociear Ashimine, Jana Chadt, Javier Sagredo, Jean-Paul Calderone, Jens Petersen, Jessica Hamilton, John Paul Adrian Glaubitz, Josh Meredith, Julia Longtin, Julian Ospald, Kazuki Okamoto, Kristen Kozak, Krzysztof Gogolewski, liamzee, Liisi Kerik, Lin Runze, Malte Neuss, malteneuss, Marcin Szamotulski, Matthew Pickering, Mel Zuser, Michael Peyton Jones, Mike Pilgrem, Mikolaj Konarski, mixphix, Oleg Grenrus, Ondřej Šebek, Patrick Augusto, Patrick Dougherty, Peter Becich, Phil de Joux, Pierre Le Marre, Rebecca Turner, Rodrigo Mesquita, Ryan Scott, Samuel Thibault, Sander, Sebastian Tee, Sergey Vinokurov, Shae Erisson, sheaf, Simon Hengel, Siyuan Chen, Sören Tempel, SuganyaAK, Suganya Raju, Sylvain Henry, Taylor Fausak, Teo Camarasu, Tom Ellis, tomjaguarpaw, Tommy Bidne, Tom Smeding, Torsten Schmits, Tristan Cacqueray, Troels Henriksen, Wismill, Yvan Sraka, Zoe Zuser > > We thank all contributors as well as our reviewers, QA testers, devops, and others without whom this release wouldn’t be possible. > > Feedback > -------- > > Please, report any issues you notice with the 3.12.1.0 release on our GitHub: https://github.com/haskell/cabal > > — cabal release team (Artem, Brandon, Francesco, Gershom, Hécate, Mikołaj) -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 509 bytes Desc: OpenPGP digital signature URL: From george.colpitts at gmail.com Tue Jul 2 11:34:27 2024 From: george.colpitts at gmail.com (George Colpitts) Date: Tue, 2 Jul 2024 08:34:27 -0300 Subject: [Haskell-cafe] 2 optimization bugs ? Message-ID: It seems like I have found two optimization bugs. Before filing bugs , I wanted to double check if others agreed and can reproduce the bugs. Compile and run the attached file: ghc -O2 optBugs.hs Loaded package environment from /Users/avie/.ghc/aarch64-darwin-9.10.1/environments/default [1 of 2] Compiling Main ( optBugs.hs, optBugs.o ) optBugs.hs:45:49: warning: [GHC-18042] [-Wtype-defaults] • Defaulting the type variable ‘b0’ to type ‘Integer’ in the following constraints (Integral b0) arising from a use of ‘^’ at optBugs.hs:45:49 (Num b0) arising from the literal ‘6’ at optBugs.hs:45:50 • In the first argument of ‘counts’, namely ‘(10 ^ 6)’ In the second argument of ‘(.)’, namely ‘counts (10 ^ 6)’ In the second argument of ‘(.)’, namely ‘elems . counts (10 ^ 6)’ | 45 | solve = product . map (+ 1) . elems . counts (10^6) -- 1000000 | ^ [2 of 2] Linking optBugs avie at Anabela-Air Documents % ./optBugs +RTS -s ./optBugs +RTS -s 39001250856960000 2,932,564,768 bytes allocated in the heap 143,405,696 bytes copied during GC 76,022,072 bytes maximum residency (4 sample(s)) 11,034,312 bytes maximum slop 164 MiB total memory in use (0 MiB lost due to fragmentation) Tot time (elapsed) Avg pause Max pause Gen 0 263 colls, 0 par 0.032s 0.036s 0.0001s 0.0020s Gen 1 4 colls, 0 par 0.048s 0.060s 0.0150s 0.0368s INIT time 0.003s ( 0.003s elapsed) MUT time 3.343s ( 3.333s elapsed) GC time 0.080s ( 0.096s elapsed) EXIT time 0.002s ( 0.008s elapsed) Total time 3.428s ( 3.440s elapsed) %GC time 0.0% (0.0% elapsed) Alloc rate 877,099,801 bytes per MUT second Productivity 97.5% of total user, 96.9% of total elapsed Now change the line solve = product . map (+ 1) . elems . counts (10^6) -- 1000000 to solve = product . map (+ 1) . elems . counts 1000000 save the file to disk, compile and rerun: ghc -O2 optBugs.hs Loaded package environment from /Users/avie/.ghc/aarch64-darwin-9.10.1/environments/default [1 of 2] Compiling Main ( optBugs.hs, optBugs.o ) [Source file changed] [2 of 2] Linking optBugs [Objects changed] avie at Anabela-Air Documents % ./optBugs +RTS -s ./optBugs +RTS -s 39001250856960000 1,920,053,000 bytes allocated in the heap 16,488 bytes copied during GC 8,028,224 bytes maximum residency (2 sample(s)) 393,152 bytes maximum slop 22 MiB total memory in use (0 MiB lost due to fragmentation) Tot time (elapsed) Avg pause Max pause Gen 0 239 colls, 0 par 0.000s 0.001s 0.0000s 0.0002s Gen 1 2 colls, 0 par 0.000s 0.001s 0.0007s 0.0011s INIT time 0.003s ( 0.003s elapsed) MUT time 2.011s ( 2.015s elapsed) GC time 0.001s ( 0.002s elapsed) EXIT time 0.000s ( 0.007s elapsed) Total time 2.015s ( 2.027s elapsed) %GC time 0.0% (0.0% elapsed) Alloc rate 954,738,679 bytes per MUT second Productivity 99.8% of total user, 99.4% of total elapsed Allocation decreased by a billion bytes and runtime has decreased by almost a third. This is hard to believe. The obvious explanation is that I dropped a zero when I wrote out 10^6 but I checked that I have six zeros. Also I get the same answer in both cases. Next uncomment the following two lines in factor: -- let p = sm ! m -- sm = smallest maxN and comment out the line: let p = smallest maxN ! m save the file, compile and rerun: ghc -O2 optBugs.hs Loaded package environment from /Users/avie/.ghc/aarch64-darwin-9.10.1/environments/default [1 of 2] Compiling Main ( optBugs.hs, optBugs.o ) [Source file changed] [2 of 2] Linking optBugs [Objects changed] avie at Anabela-Air Documents % ./optBugs +RTS -s ./optBugs +RTS -s 39001250856960000 16,051,152 bytes allocated in the heap 10,040 bytes copied during GC 44,328 bytes maximum residency (1 sample(s)) 29,400 bytes maximum slop 22 MiB total memory in use (0 MiB lost due to fragmentation) Tot time (elapsed) Avg pause Max pause Gen 0 2 colls, 0 par 0.000s 0.000s 0.0001s 0.0002s Gen 1 1 colls, 0 par 0.000s 0.001s 0.0015s 0.0015s INIT time 0.003s ( 0.003s elapsed) MUT time 0.019s ( 0.018s elapsed) GC time 0.000s ( 0.002s elapsed) EXIT time 0.001s ( 0.002s elapsed) Total time 0.023s ( 0.025s elapsed) %GC time 0.0% (0.0% elapsed) Alloc rate 866,786,478 bytes per MUT second Productivity 78.9% of total user, 72.5% of total elapsed Allocation has dropped from 2 billion bytes to 16 million and runtime has dropped from 2 seconds to 0.02 seconds. I think the optimizer should move the call to smallest outside of the "loop" in go. This seems like a bug to me. -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: optBug.hs Type: application/octet-stream Size: 1296 bytes Desc: not available URL: From noonsilk at gmail.com Wed Jul 3 11:12:06 2024 From: noonsilk at gmail.com (Noon van der Silk) Date: Wed, 3 Jul 2024 12:12:06 +0100 Subject: [Haskell-cafe] 2 optimization bugs ? In-Reply-To: References: Message-ID: I haven't looked at the second one, but for the first you may be interested in the source code - https://hackage.haskell.org/package/ghc-internal-9.1001.0/docs/src/GHC.Internal.Real.html#%5E - and the comments around [Inlining] and [Powers with small exponent]. Notably, it only covers until x^a until a = 5, and indeed with 10^5 the results of the two different ways of writing the number are the same. -- Noon On Tue, 2 Jul 2024 at 12:35, George Colpitts wrote: > It seems like I have found two optimization bugs. Before filing bugs , I > wanted to double check if others agreed and can reproduce the bugs. > > Compile and run the attached file: > > ghc -O2 optBugs.hs > Loaded package environment from > /Users/avie/.ghc/aarch64-darwin-9.10.1/environments/default > [1 of 2] Compiling Main ( optBugs.hs, optBugs.o ) > optBugs.hs:45:49: warning: [GHC-18042] [-Wtype-defaults] > • Defaulting the type variable ‘b0’ to type ‘Integer’ in the following > constraints > (Integral b0) arising from a use of ‘^’ at optBugs.hs:45:49 > (Num b0) arising from the literal ‘6’ at optBugs.hs:45:50 > • In the first argument of ‘counts’, namely ‘(10 ^ 6)’ > In the second argument of ‘(.)’, namely ‘counts (10 ^ 6)’ > In the second argument of ‘(.)’, namely ‘elems . counts (10 ^ 6)’ > | > 45 | solve = product . map (+ 1) . elems . counts (10^6) -- 1000000 > | > ^ > > [2 of 2] Linking optBugs > avie at Anabela-Air Documents % ./optBugs +RTS -s > ./optBugs +RTS -s > 39001250856960000 > 2,932,564,768 bytes allocated in the heap > 143,405,696 bytes copied during GC > 76,022,072 bytes maximum residency (4 sample(s)) > 11,034,312 bytes maximum slop > 164 MiB total memory in use (0 MiB lost due to fragmentation) > > > Tot time (elapsed) Avg pause Max > pause > Gen 0 263 colls, 0 par 0.032s 0.036s 0.0001s > 0.0020s > Gen 1 4 colls, 0 par 0.048s 0.060s 0.0150s > 0.0368s > > > INIT time 0.003s ( 0.003s elapsed) > MUT time 3.343s ( 3.333s elapsed) > GC time 0.080s ( 0.096s elapsed) > EXIT time 0.002s ( 0.008s elapsed) > Total time 3.428s ( 3.440s elapsed) > > > %GC time 0.0% (0.0% elapsed) > > > Alloc rate 877,099,801 bytes per MUT second > > > Productivity 97.5% of total user, 96.9% of total elapsed > > > Now change the line > > solve = product . map (+ 1) . elems . counts (10^6) -- 1000000 > > to > > solve = product . map (+ 1) . elems . counts 1000000 > > save the file to disk, compile and rerun: > > ghc -O2 optBugs.hs > Loaded package environment from > /Users/avie/.ghc/aarch64-darwin-9.10.1/environments/default > [1 of 2] Compiling Main ( optBugs.hs, optBugs.o ) [Source file > changed] > [2 of 2] Linking optBugs [Objects changed] > avie at Anabela-Air Documents % ./optBugs +RTS -s > ./optBugs +RTS -s > 39001250856960000 > 1,920,053,000 bytes allocated in the heap > 16,488 bytes copied during GC > 8,028,224 bytes maximum residency (2 sample(s)) > 393,152 bytes maximum slop > 22 MiB total memory in use (0 MiB lost due to fragmentation) > > > Tot time (elapsed) Avg pause Max > pause > Gen 0 239 colls, 0 par 0.000s 0.001s 0.0000s > 0.0002s > Gen 1 2 colls, 0 par 0.000s 0.001s 0.0007s > 0.0011s > > > INIT time 0.003s ( 0.003s elapsed) > MUT time 2.011s ( 2.015s elapsed) > GC time 0.001s ( 0.002s elapsed) > EXIT time 0.000s ( 0.007s elapsed) > Total time 2.015s ( 2.027s elapsed) > > > %GC time 0.0% (0.0% elapsed) > > > Alloc rate 954,738,679 bytes per MUT second > > > Productivity 99.8% of total user, 99.4% of total elapsed > > > Allocation decreased by a billion bytes and runtime has decreased by > almost a third. This is hard to believe. The obvious explanation is that I > dropped a zero when I wrote out 10^6 but I checked that I have six zeros. > Also I get the same answer in both cases. > > Next uncomment the following two lines in factor: > > -- let p = sm ! m > > -- sm = smallest maxN > > and comment out the line: > > let p = smallest maxN ! m > > save the file, compile and rerun: > > > ghc -O2 optBugs.hs > Loaded package environment from > /Users/avie/.ghc/aarch64-darwin-9.10.1/environments/default > [1 of 2] Compiling Main ( optBugs.hs, optBugs.o ) [Source file > changed] > [2 of 2] Linking optBugs [Objects changed] > avie at Anabela-Air Documents % ./optBugs +RTS -s > ./optBugs +RTS -s > 39001250856960000 > 16,051,152 bytes allocated in the heap > 10,040 bytes copied during GC > 44,328 bytes maximum residency (1 sample(s)) > 29,400 bytes maximum slop > 22 MiB total memory in use (0 MiB lost due to fragmentation) > > > Tot time (elapsed) Avg pause Max > pause > Gen 0 2 colls, 0 par 0.000s 0.000s 0.0001s > 0.0002s > Gen 1 1 colls, 0 par 0.000s 0.001s 0.0015s > 0.0015s > > INIT time 0.003s ( 0.003s elapsed) > MUT time 0.019s ( 0.018s elapsed) > GC time 0.000s ( 0.002s elapsed) > EXIT time 0.001s ( 0.002s elapsed) > Total time 0.023s ( 0.025s elapsed) > > %GC time 0.0% (0.0% elapsed) > > Alloc rate 866,786,478 bytes per MUT second > > Productivity 78.9% of total user, 72.5% of total elapsed > > Allocation has dropped from 2 billion bytes to 16 million and runtime has > dropped from 2 seconds to 0.02 seconds. I think the optimizer should move > the call to smallest outside of the "loop" in go. This seems like a bug to > me. > > > > > > > _______________________________________________ > Haskell-Cafe mailing list > To (un)subscribe, modify options or view archives go to: > http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe > Only members subscribed via the mailman list are allowed to post. -- Noon van der Silk http://silky.github.io/ "My programming language is kindness." -------------- next part -------------- An HTML attachment was scrubbed... URL: From ifl21.publicity at gmail.com Wed Jul 3 12:50:12 2024 From: ifl21.publicity at gmail.com (Mart Lubbers) Date: Wed, 3 Jul 2024 07:50:12 -0500 Subject: [Haskell-cafe] IFL 2024: Second Call for Papers Message-ID: ======================================================================= IFL 2024 36rd Symposium on Implementation and Application of Functional Languages venue: Radboud University Nijmegen, The Netherlands August 26 - 28 2024 https://ifl24.cs.ru.nl ======================================================================= ### 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 2024 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. ### Industrial track and topics of interest 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 specialisation - run-time code generation - partial evaluation - (abstract) interpretation - meta-programming - 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 ### Peer-review process Following IFL tradition, IFL 2024 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 chairs 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. 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. ### Important dates Submission deadline of draft papers August 4th, 2024 Notification of acceptance for presentation August 6th, 2024 Early registration deadline August 11th, 2024 Late registration deadline August 21th, 2024 IFL symposium August 26-28, 2024 Submission of papers for proceedings December 1st, 2024 Notification of acceptance February 2nd, 2025 Camera-ready version March 2nd, 2025 ### Submission details and Registration All contributions must be written in English. Papers must use the ACM two columns conference format, which can be found at: http://www.acm.org/publications/proceedings-template Submit your paper here: https://easychair.org/conferences/?conf=ifl20240 Registration https://ifl24.cs.ru.nl/Registration ### Peter Landin Prize The Peter Landin Prize is awarded to the best paper presented at the symposium every year. The honoured article is selected by the program committee based on the submissions received for the formal review process. The prize carries a cash award equivalent to 150 Euros. ### Organisation PC Chairs: Mart Lubbers Radboud University, The Netherlands Local Chairs: Peter Achten Radboud University, The Netherlands Sven-Bodo Scholz, Radboud University, The Netherlands ### Program committee: Benoît Montagu, University of Lorraine, Inria, France Christos Dimoulas, Northwestern University, USA Edsko de Vries, Well-typed, The Netherlands Fritz Henglein, University of Copenhagen, Denmark Ian Mackie, University of Sussex, UK Jason Hemann, Seton Hall University, USA João Saraiva, Universidade do Minho, Portugal Jurriaan Hage, Heriot-Watt University, UK Kenichi Asai, Ochanomizu University, Japan Maja Kirkeby, Roskilde University, Denmark Marco Morazán, Seton Hall University, USA Neil Mitchell, Facebook, UK Ralf Laemmel, University of Koblenz Landau, Germany Rinus Plasmeijer, TOP Software/Radboud University, The Netherlands Stephen Chang, UMass Boston, USA Tim Steenvoorden, Open University, The Netherlands Tom Schrijvers, KU Leuven, Belgium Yusuf Moosa Motara, Rhodes University, South Africa ### Venue IFL 2024 will be held physically in Nijmegen, the Netherlands. See the website for more information. https://ifl24.cs.ru.nl ### Acknowledgments This call-for-papers is an adaptation and evolution of content from previous instances of IFL. We are grateful to prior organisers for their work, which is reused here. From george.colpitts at gmail.com Wed Jul 3 18:14:51 2024 From: george.colpitts at gmail.com (George Colpitts) Date: Wed, 3 Jul 2024 15:14:51 -0300 Subject: [Haskell-cafe] 2 optimization bugs ? In-Reply-To: References: Message-ID: Thanks Noon. I should have been clearer, I expected 10^6 to be changed to 1000000 at compile time as part of constant folding. Even when done at run time I can't see how that conversion would take that long or why it would allocate so many bytes. On Wed, Jul 3, 2024 at 8:12 AM Noon van der Silk wrote: > I haven't looked at the second one, but for the first you may be > interested in the source code - > https://hackage.haskell.org/package/ghc-internal-9.1001.0/docs/src/GHC.Internal.Real.html#%5E > - and the comments around [Inlining] and [Powers with small exponent]. > > Notably, it only covers until x^a until a = 5, and indeed with 10^5 the > results of the two different ways of writing the number are the same. > > -- > Noon > > > On Tue, 2 Jul 2024 at 12:35, George Colpitts > wrote: > >> It seems like I have found two optimization bugs. Before filing bugs , I >> wanted to double check if others agreed and can reproduce the bugs. >> >> Compile and run the attached file: >> >> ghc -O2 optBugs.hs >> Loaded package environment from >> /Users/avie/.ghc/aarch64-darwin-9.10.1/environments/default >> [1 of 2] Compiling Main ( optBugs.hs, optBugs.o ) >> optBugs.hs:45:49: warning: [GHC-18042] [-Wtype-defaults] >> • Defaulting the type variable ‘b0’ to type ‘Integer’ in the >> following constraints >> (Integral b0) arising from a use of ‘^’ at optBugs.hs:45:49 >> (Num b0) arising from the literal ‘6’ at optBugs.hs:45:50 >> • In the first argument of ‘counts’, namely ‘(10 ^ 6)’ >> In the second argument of ‘(.)’, namely ‘counts (10 ^ 6)’ >> In the second argument of ‘(.)’, namely ‘elems . counts (10 ^ 6)’ >> | >> 45 | solve = product . map (+ 1) . elems . counts (10^6) -- 1000000 >> | >> ^ >> >> [2 of 2] Linking optBugs >> avie at Anabela-Air Documents % ./optBugs +RTS -s >> ./optBugs +RTS -s >> 39001250856960000 >> 2,932,564,768 bytes allocated in the heap >> 143,405,696 bytes copied during GC >> 76,022,072 bytes maximum residency (4 sample(s)) >> 11,034,312 bytes maximum slop >> 164 MiB total memory in use (0 MiB lost due to fragmentation) >> >> >> Tot time (elapsed) Avg pause Max >> pause >> Gen 0 263 colls, 0 par 0.032s 0.036s 0.0001s >> 0.0020s >> Gen 1 4 colls, 0 par 0.048s 0.060s 0.0150s >> 0.0368s >> >> >> INIT time 0.003s ( 0.003s elapsed) >> MUT time 3.343s ( 3.333s elapsed) >> GC time 0.080s ( 0.096s elapsed) >> EXIT time 0.002s ( 0.008s elapsed) >> Total time 3.428s ( 3.440s elapsed) >> >> >> %GC time 0.0% (0.0% elapsed) >> >> >> Alloc rate 877,099,801 bytes per MUT second >> >> >> Productivity 97.5% of total user, 96.9% of total elapsed >> >> >> Now change the line >> >> solve = product . map (+ 1) . elems . counts (10^6) -- 1000000 >> >> to >> >> solve = product . map (+ 1) . elems . counts 1000000 >> >> save the file to disk, compile and rerun: >> >> ghc -O2 optBugs.hs >> Loaded package environment from >> /Users/avie/.ghc/aarch64-darwin-9.10.1/environments/default >> [1 of 2] Compiling Main ( optBugs.hs, optBugs.o ) [Source >> file changed] >> [2 of 2] Linking optBugs [Objects changed] >> avie at Anabela-Air Documents % ./optBugs +RTS -s >> ./optBugs +RTS -s >> 39001250856960000 >> 1,920,053,000 bytes allocated in the heap >> 16,488 bytes copied during GC >> 8,028,224 bytes maximum residency (2 sample(s)) >> 393,152 bytes maximum slop >> 22 MiB total memory in use (0 MiB lost due to fragmentation) >> >> >> Tot time (elapsed) Avg pause Max >> pause >> Gen 0 239 colls, 0 par 0.000s 0.001s 0.0000s >> 0.0002s >> Gen 1 2 colls, 0 par 0.000s 0.001s 0.0007s >> 0.0011s >> >> >> INIT time 0.003s ( 0.003s elapsed) >> MUT time 2.011s ( 2.015s elapsed) >> GC time 0.001s ( 0.002s elapsed) >> EXIT time 0.000s ( 0.007s elapsed) >> Total time 2.015s ( 2.027s elapsed) >> >> >> %GC time 0.0% (0.0% elapsed) >> >> >> Alloc rate 954,738,679 bytes per MUT second >> >> >> Productivity 99.8% of total user, 99.4% of total elapsed >> >> >> Allocation decreased by a billion bytes and runtime has decreased by >> almost a third. This is hard to believe. The obvious explanation is that I >> dropped a zero when I wrote out 10^6 but I checked that I have six zeros. >> Also I get the same answer in both cases. >> >> Next uncomment the following two lines in factor: >> >> -- let p = sm ! m >> >> -- sm = smallest maxN >> >> and comment out the line: >> >> let p = smallest maxN ! m >> >> save the file, compile and rerun: >> >> >> ghc -O2 optBugs.hs >> Loaded package environment from >> /Users/avie/.ghc/aarch64-darwin-9.10.1/environments/default >> [1 of 2] Compiling Main ( optBugs.hs, optBugs.o ) [Source >> file changed] >> [2 of 2] Linking optBugs [Objects changed] >> avie at Anabela-Air Documents % ./optBugs +RTS -s >> ./optBugs +RTS -s >> 39001250856960000 >> 16,051,152 bytes allocated in the heap >> 10,040 bytes copied during GC >> 44,328 bytes maximum residency (1 sample(s)) >> 29,400 bytes maximum slop >> 22 MiB total memory in use (0 MiB lost due to fragmentation) >> >> >> Tot time (elapsed) Avg pause Max >> pause >> Gen 0 2 colls, 0 par 0.000s 0.000s 0.0001s >> 0.0002s >> Gen 1 1 colls, 0 par 0.000s 0.001s 0.0015s >> 0.0015s >> >> INIT time 0.003s ( 0.003s elapsed) >> MUT time 0.019s ( 0.018s elapsed) >> GC time 0.000s ( 0.002s elapsed) >> EXIT time 0.001s ( 0.002s elapsed) >> Total time 0.023s ( 0.025s elapsed) >> >> %GC time 0.0% (0.0% elapsed) >> >> Alloc rate 866,786,478 bytes per MUT second >> >> Productivity 78.9% of total user, 72.5% of total elapsed >> >> Allocation has dropped from 2 billion bytes to 16 million and runtime has >> dropped from 2 seconds to 0.02 seconds. I think the optimizer should move >> the call to smallest outside of the "loop" in go. This seems like a bug to >> me. >> >> >> >> >> >> >> _______________________________________________ >> Haskell-Cafe mailing list >> To (un)subscribe, modify options or view archives go to: >> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe >> Only members subscribed via the mailman list are allowed to post. > > > > -- > Noon van der Silk > > http://silky.github.io/ > > "My programming language is kindness." > -------------- next part -------------- An HTML attachment was scrubbed... URL: From lemming at henning-thielemann.de Sat Jul 6 15:09:04 2024 From: lemming at henning-thielemann.de (Henning Thielemann) Date: Sat, 6 Jul 2024 17:09:04 +0200 (CEST) Subject: [Haskell-cafe] [ANN] cabal-install-3.12.1.0 (and accompanying libraries) released In-Reply-To: References: Message-ID: <5c82e976-4f77-ee42-a6d1-d240a00001f2@henning-thielemann.de> On Fri, 28 Jun 2024, Artem Pelenitsyn wrote: > The cabal release team brings you the release of the cabal-install tool, version 3.12.1.0. This is the first release of the > tool in the 3.12 series, and, hence, the first cabal-install supporting Cabal 3.12 packaged with GHC 9.10.1. We also update > the three main libraries. > > * cabal-install: The command-line interface for Cabal and Hackage. > * Cabal: A framework for packaging Haskell software > * Cabal-syntax: A library for working with .cabal files > * cabal-install-solver: The command-line interface for Cabal and Hackage. The last one sounds interesting, though the synopsis equals the one of cabal-install. From vamchale at gmail.com Sat Jul 6 15:38:42 2024 From: vamchale at gmail.com (Vanessa McHale) Date: Sat, 6 Jul 2024 11:38:42 -0400 Subject: [Haskell-cafe] [ANN] cabal-install-3.12.1.0 (and accompanying libraries) released In-Reply-To: References: Message-ID: Thanks to all contributors! I am enjoying the speedup :) Cheers, Vanessa McHale > On Jun 28, 2024, at 2:31 PM, Artem Pelenitsyn wrote: > > Dear all, > > The cabal release team brings you the release of the cabal-install tool, version 3.12.1.0. This is the first release of the tool in the 3.12 series, and, hence, the first cabal-install supporting Cabal 3.12 packaged with GHC 9.10.1. We also update the three main libraries. > > cabal-install: The command-line interface for Cabal and Hackage. > Cabal: A framework for packaging Haskell software > Cabal-syntax: A library for working with .cabal files > cabal-install-solver: The command-line interface for Cabal and Hackage. > The binaries for cabal-install are available on our website and can be installed via GHCup manually, e.g.: > > Linux x86_64 (static, alpine3_18): > ghcup --no-cache install cabal -u 'https://downloads.haskell.org/cabal/cabal-install-3.12.1.0/cabal-install-3.12.1.0-x86_64-linux-alpine3_18.tar.xz' 3.12.1.0 > MacOS AArch64: > ghcup --no-cache install cabal -u 'https://downloads.haskell.org/cabal/cabal-install-3.12.1.0/cabal-install-3.12.1.0-aarch64-darwin.tar.xz' 3.12.1.0 > Windows: > ghcup --no-cache install cabal -u 'https://downloads.haskell.org/cabal/cabal-install-3.12.1.0/cabal-install-3.12.1.0-x86_64-windows.zip' 3.12.1.0 > or a similar command for your platform using the binaries provided on the website > as usual, cabal update && cabal install cabal-install-3.12.1.0 is an option too. > We expect the official GHCup channel to be updated with the 3.12.1.0 binaries soon. > > What is new > > Performance > > Significant speedups during cabal startup due to use of the latest tar > Project Organization > > Support for asm, cmm, and js sources in executable components > Support for per-component builds when coverage is enabled > Haskell files in explicit source directories take precedence over autogenerated Haskell files > Fix precedence for PATH for build-tools-depends (executables from PATH don’t shadow executables from build-tool-depends anymore) > UX > > Errors now have error codes, which will be documented on https://errors.haskell.org > A new subcommand, cabal path, which can be used to get information about the paths cabal will use within a project > Support for authentication tokens for uploading to Hackage > --(test-)show-details=direct is now the default > Shorten solver rejection messages by removing repetition > Show provenance of project constraints > Interaction with GHC > > Support for loading multiple components into one repl session > Support for the --semaphore flag to enable interaction with GHC Job Server protocol > Support for GHC2024 > Support for language extensions ExtendedLiterals¸ ListTuplePuns, and TypeAbstractions > Other Compilers > > Micro Haskell (MHS) has been added as a known compiler. We don’t have support for driving it yet, though. > See the release notes for more details and other changes. > > Contributors > > 50^2, Adam Gundry, Andrea Bedini, Andreas Abel, Andreas Klebinger, Arjun Kathuria, Artem Pelenitsyn, BasLaa, Bas Laarakker, Ben Gamari, Bodigrim, Brandon Chinn, brandon s allbery kf8nh, Bryan Richter, Colton Clemmer, Csaba Hruska, cydparser, Daniel Trstenjak, David Binder, David Christiansen, Edwin Marshall, Elodie Lander, Erik de Castro Lopo, Felix Yan, fendor, Finley, Francesco Ariis, Francesco Gazzetta, Fraser Tweedale, Gershom Bazerman, Hamish Mackenzie, Hécate Moonlight, Ikko Eltociear Ashimine, Jana Chadt, Javier Sagredo, Jean-Paul Calderone, Jens Petersen, Jessica Hamilton, John Paul Adrian Glaubitz, Josh Meredith, Julia Longtin, Julian Ospald, Kazuki Okamoto, Kristen Kozak, Krzysztof Gogolewski, liamzee, Liisi Kerik, Lin Runze, Malte Neuss, malteneuss, Marcin Szamotulski, Matthew Pickering, Mel Zuser, Michael Peyton Jones, Mike Pilgrem, Mikolaj Konarski, mixphix, Oleg Grenrus, Ondřej Šebek, Patrick Augusto, Patrick Dougherty, Peter Becich, Phil de Joux, Pierre Le Marre, Rebecca Turner, Rodrigo Mesquita, Ryan Scott, Samuel Thibault, Sander, Sebastian Tee, Sergey Vinokurov, Shae Erisson, sheaf, Simon Hengel, Siyuan Chen, Sören Tempel, SuganyaAK, Suganya Raju, Sylvain Henry, Taylor Fausak, Teo Camarasu, Tom Ellis, tomjaguarpaw, Tommy Bidne, Tom Smeding, Torsten Schmits, Tristan Cacqueray, Troels Henriksen, Wismill, Yvan Sraka, Zoe Zuser > > We thank all contributors as well as our reviewers, QA testers, devops, and others without whom this release wouldn’t be possible. > > Feedback > > Please, report any issues you notice with the 3.12.1.0 release on our GitHub: https://github.com/haskell/cabal > > — cabal release team (Artem, Brandon, Francesco, Gershom, Hécate, Mikołaj) > > _______________________________________________ > Haskell-Cafe mailing list > To (un)subscribe, modify options or view archives go to: > http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe > Only members subscribed via the mailman list are allowed to post. -------------- next part -------------- An HTML attachment was scrubbed... URL: From a.pelenitsyn at gmail.com Sat Jul 6 19:15:34 2024 From: a.pelenitsyn at gmail.com (Artem Pelenitsyn) Date: Sat, 6 Jul 2024 15:15:34 -0400 Subject: [Haskell-cafe] [ANN] cabal-install-3.12.1.0 (and accompanying libraries) released In-Reply-To: <5c82e976-4f77-ee42-a6d1-d240a00001f2@henning-thielemann.de> References: <5c82e976-4f77-ee42-a6d1-d240a00001f2@henning-thielemann.de> Message-ID: Hey Henning, cabal-install-solver was split out in 2021 and was first released with cabal-install 3.8, as you can see on its Hackage page [3]. The commit doing the split [1] and the corresponding PR don't have much discussion but the initial issue (2016!) has some [2]. I opened an issue to track the slip with the synopsis that you point out [4]. Contributions are welcome! Thanks for your interest in cabal, and thanks everybody for the warming words! Please, don't hesitate to submit issues on our GitHub if anything comes up. [1] https://github.com/haskell/cabal/commit/54696c14986d29aed03a101e5faabf1b7280f967 [2] https://github.com/haskell/cabal/issues/3781 [3] https://hackage.haskell.org/package/cabal-install-solver-3.12.1.0 [4] https://github.com/haskell/cabal/issues/10183 [5] https://github.com/haskell/cabal/pull/7358 On Sat, Jul 6, 2024 at 11:09 AM Henning Thielemann < lemming at henning-thielemann.de> wrote: > > On Fri, 28 Jun 2024, Artem Pelenitsyn wrote: > > > The cabal release team brings you the release of the cabal-install tool, > version 3.12.1.0. This is the first release of the > > tool in the 3.12 series, and, hence, the first cabal-install supporting > Cabal 3.12 packaged with GHC 9.10.1. We also update > > the three main libraries. > > > > * cabal-install: The command-line interface for Cabal and Hackage. > > * Cabal: A framework for packaging Haskell software > > * Cabal-syntax: A library for working with .cabal files > > * cabal-install-solver: The command-line interface for Cabal and > Hackage. > > The last one sounds interesting, though the synopsis equals the one of > cabal-install. > -------------- next part -------------- An HTML attachment was scrubbed... URL: From mmcconnell17704 at yahoo.com Sun Jul 7 00:55:15 2024 From: mmcconnell17704 at yahoo.com (Mark McConnell) Date: Sun, 7 Jul 2024 00:55:15 +0000 (UTC) Subject: [Haskell-cafe] a tribute to Haskell Curry References: <637631462.980309.1720313715986.ref@mail.yahoo.com> Message-ID: <637631462.980309.1720313715986@mail.yahoo.com> Haskell Curry was a professor for 37 years at the Pennsylvania State University.  Curry Hall is a dormitory named after him.  On a recent visit to Penn State, my laptop asked me to help it take a selfie. -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: curry_hall_penn_state.jpg Type: image/jpeg Size: 1548125 bytes Desc: not available URL: From matthewtpickering at gmail.com Mon Jul 8 13:30:40 2024 From: matthewtpickering at gmail.com (Matthew Pickering) Date: Mon, 8 Jul 2024 14:30:40 +0100 Subject: [Haskell-cafe] Final Call for Talks: Haskell Implementors' Workshop 2024 In-Reply-To: References: Message-ID: ``` ACM SIGPLAN Haskell Implementors' Workshop https://icfp24.sigplan.org/home/hiw-2024 Milan, Italy, September 2, 2024 Co-located with ICFP 2024 https://icfp24.sigplan.org/ ``` ## Important dates * Deadline: July 19, 2024 (AoE) * Notification: August 2, 2024 * Workshop: September 2, 2024 The 16th Haskell Implementors’ Workshop is to be held alongside ICFP 2024 this year in Milan. It is a forum for people involved in the design and development of Haskell implementations, tools, libraries, and supporting infrastructure to share their work and to discuss future directions and collaborations with others. Talks and/or demos are proposed by submitting an abstract, and selected by a small program committee. There will be no published proceedings. The workshop will be informal and interactive, with open spaces in the timetable and room for ad-hoc discussion, demos, and lightning talks. ## Scope and Target Audience It is important to distinguish the Haskell Implementors’ Workshop from the Haskell Symposium which is also co-located with ICFP 2024. The Haskell Symposium is for the publication of Haskell-related research. In contrast, the Haskell Implementors’ Workshop will have no proceedings – although we will aim to make talk videos, slides, and presented data available with the consent of the speakers. The Implementors’ Workshop is an ideal place to describe a Haskell extension, describe works-in-progress, demo a new Haskell-related tool, or even propose future lines of Haskell development. Members of the wider Haskell community are encouraged to attend the workshop – we need your feedback to keep the Haskell ecosystem thriving. Students working with Haskell are especially encouraged to share their work. The scope covers any of the following topics. There may be some topics that people feel we’ve missed, so by all means submit a proposal even if it doesn’t fit exactly into one of these buckets: * Compilation techniques * Language features and extensions * Type system implementation * Concurrency and parallelism: language design and implementation * Performance, optimization and benchmarking * Virtual machines and run-time systems * Libraries and tools for development or deployment ## Talks We invite proposals from potential speakers for talks and demonstrations. We are aiming for 20-minute talks with 5 minutes for questions and changeovers. We want to hear from people writing compilers, tools, or libraries, people with cool ideas for directions in which we should take the platform, proposals for new features to be implemented, and half-baked crazy ideas. Please submit a talk title and abstract of no more than 300 words. Submissions can be made via HotCRP at https://hiw2024.hotcrp.com until July 19 (anywhere on earth). We will also have a lightning talks session. These have been very well received in recent years, and we aim to increase the time available to them. Lightning talks should be ~7mins and are scheduled on the day of the workshop. Suggested topics for lightning talks are to present a single idea, a work-in-progress project, a problem to intrigue and perplex Haskell implementors, or simply to ask for feedback and collaborators. ## Program Committee * Matthew Pickering (Well-Typed LLP) * David Binder (University of Tübingen) * Gabriella Gonzalez (Mercury) * Sylvain Henry (IOG) * Teofil Camarasu (CircuitHub) ## Contact * Matthew Pickering From lemming at henning-thielemann.de Tue Jul 9 19:45:49 2024 From: lemming at henning-thielemann.de (Henning Thielemann) Date: Tue, 9 Jul 2024 21:45:49 +0200 (CEST) Subject: [Haskell-cafe] Perl Regular Expressions Message-ID: <2bc4301c-40fb-f40e-68e3-687ec6cfa35d@henning-thielemann.de> There is an overview page for regular expression libraries in Haskell. [1] However, the last substantial update is from 2014. It seems that regex-pcre was quite popular, but it binds to the C library libpcre which is being phased out in favor of pcre2. There are bindings to pcre2 in the Hackage package pcre2, but there seems to be unresolved low-level problems. [2] I am looking for a package where speed is not top priority, but compatibility to libpcre regular expressions. I think a plain Haskell package would increase the chances of absence of memory bugs and interfacing issues. According to the Wiki page Haskell-only implementations seem to prefer Posix expressions over Perl ones. [1] https://wiki.haskell.org/Regular_expressions [2] https://github.com/sjshuck/hs-pcre2/issues/34 From tdecacqu at redhat.com Wed Jul 10 00:32:07 2024 From: tdecacqu at redhat.com (Tristan Cacqueray) Date: Tue, 09 Jul 2024 20:32:07 -0400 Subject: [Haskell-cafe] Taking over maintenance of hsndfile package Message-ID: <87plrmm6ig.tristanC@fedora> Hello, I would like to take over the hsndfile package maintenance: https://hackage.haskell.org/package/hsndfile … to merge the following fix and improvement: https://github.com/kaoskorobase/hsndfile/pull/24 https://github.com/kaoskorobase/hsndfile/pull/25 The current maintainer seems inactive on GitHub and not responsive to my direct mail on June 7. So if that's ok with you, I'd like to make a new release with the above changes. I'd be happy to handle further maintenance if needed. Thanks, -Tristan -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 515 bytes Desc: not available URL: From kkmicins at syr.edu Mon Jul 15 04:30:46 2024 From: kkmicins at syr.edu (Kristopher K Micinski) Date: Mon, 15 Jul 2024 04:30:46 +0000 Subject: [Haskell-cafe] =?windows-1252?q?Call_for_Papers=3A_Scheme_=9124_?= =?windows-1252?q?=28extended_deadline=3A_July_25th=29?= Message-ID: -------------------------------------------------------------------------------- CALL FOR PAPERS The 2024 Workshop on Scheme and Functional Programming Co-located with ICFP 2024 (Milan, Italy) https://icfp24.sigplan.org/home/scheme-2024 -------------------------------------------------------------------------------- The 2024 Scheme and Functional Programming Workshop is calling for submissions. We invite high-quality papers and talk proposals about novel research results, lessons learned from practical experience in an industrial or educational setting, and even new insights on old ideas. We welcome and encourage submissions that apply to any dynamic functional language, especially those that can be considered a Scheme: from strict subsets of RnRS to other "Scheme" implementations, to Racket, to Lisp dialects including Clojure, Emacs Lisp, Common Lisp, to functional languages with continuations and/or macros (or extended to have them) such as Dylan, ECMAScript, Hop, Lua, Scala, Rust, etc. The elegance of the paper and the relevance of its topic to the interests of Schemers will matter more than the surface syntax of the examples used. * Topics Topics of interest include (but are not limited to): - Interaction: program-development environments, debugging, testing, refactoring - Implementation: interpreters, compilers, tools, garbage collectors, benchmarks - Extension: macros, hygiene, domain-specific languages, reflection, and how such extension affects interaction - Expression: control, modularity, ad hoc and parametric polymorphism, types, aspects, ownership models, concurrency, distribution, parallelism, non-determinism, probabilism, and other programming paradigms - Integration: build tools, deployment, interoperation with other languages and systems - Formal semantics: theory, analyses and transformations, partial evaluation - Human factors: past, present and future history, evolution and sociology of the language Scheme, its standard and its dialects - Education: approaches, experiences, curricula - Applications: industrial uses of Scheme - Scheme pearls: elegant, instructive uses of Scheme * Dates - Submission deadline is Thursday July 25, 2024 (extended). - Authors will be notified by Monday August 12, 2024. - Camera-ready versions are due Thursday August 29, 2024. - Workshop will be held in Milan, Italy on Saturday September 7, 2024. All deadlines are 23:59 UTC-12, anywhere on Earth. * Submission Information We encourage all kinds of submissions, including full papers, experience reports, and lightning talks. Papers and experience reports are expected to be 10–24 pages in length using the single-column SIGPLAN acmart style. (For reference, this is about 5–12 pages of the older SIGPLAN 2-column 9pt style.) Abstracts submitted for lightning talks should be limited to 192 words. Authors of each accepted submission are invited to attend and be available for the presentation of that paper at the conference. The schedule for presentations will be determined and shared with authors after the full program has been selected. The size limits above exclude references and any optional appendices. There are no size limits on appendices, but the papers should stand without the need to read them, and reviewers are not required to read them. Authors are encouraged to publish any code associated to their papers under an open source license, so that reviewers may try the code and verify the claims. Proceedings will be uploaded to arXiv.org (https://arXiv.org/). Publication of a paper at this workshop is not intended to replace conference or journal publication, and does not preclude re-publication of a more complete or finished version of the paper at some later conference or in a journal. Please submit papers through the workshop's HotCRP site (https://scheme2024.hotcrp.com/). * Lightweight double-blind reviewing Scheme 2024 will use lightweight double-blind reviewing. Submitted papers must omit author names and institutions and reference the authors’ own related work in the third person (e.g., not “we build on our previous work…” but rather “we build on the work of…”). The purpose is to help the reviewers come to an initial judgment about the paper without bias, not to make it impossible for them to discover the authors if they were to try. Nothing should be done in the name of anonymity that weakens the submission or makes the job of reviewing the paper more difficult (e.g., important background references should not be omitted or anonymized). * Formatting Information Full papers and experience reports should use the SIGPLAN acmsmall option to acmart. We recommend using the anonymous and review options to acmart when submitting a paper; these options hide the author names and enable line numbers for easy reference in review. LaTeX and Microsoft Word templates for this format are available through SIGPLAN (https://www.sigplan.org/Resources/Author/). Lightning talks can be submitted as either a text file or a PDF file. * Workshop Organization Organizing Committee: Kristopher Micinski (Syracuse University, United States) Youyou Cong (Tokyo Institute of Technology, Japan) Program Committee: Julia Belyakova (Purdue University, United States) Kimball Germane (Brigham Young University, United States) Yuki Nishida (Tohoku University, Japan) Gabriel Scherer (Inria Saclay, France) Philipp Schuster (University of Tübingen, Germany) Taro Sekiyama (National Institute of Informatice, Japan) Michael Sperber (Active Group GmbH, Germany) From xnningxie at gmail.com Fri Jul 19 20:07:44 2024 From: xnningxie at gmail.com (Ningning Xie) Date: Fri, 19 Jul 2024 16:07:44 -0400 Subject: [Haskell-cafe] POPL 2025: Final Call for Workshops and Co-located Events (July 26 AOE) Message-ID: FINAL CALL FOR WORKSHOPS AND CO-LOCATED EVENTS POPL 2025 52nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages Sun 19 - Sat 25, January 2025 Denver, Colorado, United States https://popl25.sigplan.org The 52nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL 2025) will be held in Denver, Colorado, United States. POPL provides a forum for the discussion of fundamental principles and important innovations in the design, definition, analysis, transformation, implementation and verification of programming languages, programming systems, and programming abstractions. Events focusing on experimental and theoretical topics are welcome. Proposals are invited for workshops and other events to be co-located with POPL 2025. All co-located events are sponsored by SIGPLAN ( http://acm.org/sigplan/). Workshops should be more informal and focused than POPL itself, and include sessions that enable interaction among the workshop attendees. The preference is for one-day workshops, but other schedules can also be considered. --------------------------------------------------------------------- Submission details Deadline for submission: 26 July 2024 Notification of acceptance: 2 August 2024 A workshop proposal should provide the following information: * Name of the workshop. * Duration of the workshop. * Whether the workshop will be Conference-approved or SIGPLAN-approved (see below). * Organizers: names, affiliation, contact information, brief (100 words) biography. * A short description (150-200 words) of the topic. * Event format: workshop; type of submissions if any; review process; results dissemination. * Expected attendance and target audience. * Potential PC members - please do not contact them before the workshop is approved. * History of the workshop. * Plans for remote participation Proposals must be submitted in PDF form by email with the subject POPL 2025 Workshop Proposal: [workshop name], to the workshop co-chairs: Christoph Matheja (chmat at dtu.dk) and Robert Rand (rand at uchicago.edu). --------------------------------------------------------------------- SIGPLAN Sponsorship POPL co-located events are sponsored by SIGPLAN (http://sigplan.org/). There are two kinds of co-located events: Conference-approved (no proceedings) and SIGPLAN-approved (proceedings in the ACM Digital Library). See http://www.sigplan.org/Resources/Guidelines/Workshops/ for more information, including a full listing of prescriptions for Conference-approved and SIGPLAN-approved workshops. SIGPLAN-approved workshops must respect the SIGPLAN Diversity Policy. Proposals for SIGPLAN-approved workshops must additionally include the gender, country of affiliation, and professional status of potential PC members. See https://www.sigplan.org/Resources/Policies/Diversity/ for more details. --------------------------------------------------------------------- Selection committee All submissions will be evaluated by a committee comprising the workshops co-chairs, the general chair, and the program chair. --------------------------------------------------------------------- Further information Any questions regarding POPL 2025 co-located event proposals should be addressed to the workshops chairs Christoph Matheja (chmat at dtu.dk) and Robert Rand (rand at uchicago.edu). -------------- next part -------------- An HTML attachment was scrubbed... URL: From icfp.publicity at googlemail.com Mon Jul 22 14:26:37 2024 From: icfp.publicity at googlemail.com (ICFP Publicity) Date: Mon, 22 Jul 2024 10:26:37 -0400 Subject: [Haskell-cafe] ICFP 2024: Call for Participation Message-ID: ===================================================================== Call for Participation The 29th ACM SIGPLAN International Conference on Functional Programming (ICFP 2024) and affiliated events https://icfp24.sigplan.org Milan, Italy; Sep 2-7, 2024 ===================================================================== ICFP is a celebration of the art and science of functional programming, providing a forum for researchers and developers to engage on a variety of topics, from foundations to features, and from abstraction to application. You are invited to participate in a full week dedicated to functional programming, featuring the ICFP main conference as well as several other related events. * Accepted Papers: https://icfp24.sigplan.org/track/icfp-2024-papers#event-overview * Registration: https://icfp24.sigplan.org/attending/registration The early-bird deadline is August 3, 2024 * Venue: Allianz MiCo (Milano Convention Centre) https://icfp24.sigplan.org/venue/icfp-2024-venue There are several events affiliated with ICFP: September 2 HOPE - https://icfp24.sigplan.org/home/hope-2024 PLMW - https://icfp24.sigplan.org/home/PLMW-ICFP-2024 HIW - https://icfp24.sigplan.org/home/hiw-2024 Erlang - https://icfp24.sigplan.org/home/erlang-2024 FARM - https://icfp24.sigplan.org/home/farm-2024 September 3-5 ICFP - Main conference September 6 Tutorials (Sep 6-7) - https://icfp24.sigplan.org/track/icfp-2024-tutorials FProPer - https://icfp24.sigplan.org/home/fproper-2024 ML - https://icfp24.sigplan.org/home/mlworkshop-2024 Haskell (Sep 6-7) - https://icfp24.sigplan.org/home/haskellsymp-2024 TyDe - https://icfp24.sigplan.org/home/tyde-2024 miniKanren - https://icfp24.sigplan.org/home/minikanren-2024 FUNARCH - https://icfp24.sigplan.org/home/funarch-2024 September 7 Tutorials (Sep 6-7) - https://icfp24.sigplan.org/track/icfp-2024-tutorials Scheme - https://icfp24.sigplan.org/home/scheme-2024 OCaml - https://icfp24.sigplan.org/home/ocaml-2024 Haskell (Sep 6-7) - https://icfp24.sigplan.org/home/haskellsymp-2024 Conference organizers: https://icfp24.sigplan.org/committee/icfp-2024-organizing-committee ===================================================================== -------------- next part -------------- An HTML attachment was scrubbed... URL: From lemming at henning-thielemann.de Tue Jul 23 14:51:34 2024 From: lemming at henning-thielemann.de (Henning Thielemann) Date: Tue, 23 Jul 2024 16:51:34 +0200 (CEST) Subject: [Haskell-cafe] Strange kind error when using Lens.traverseOf Message-ID: I have this simplified module: module Ganeti.LensPlain where import Control.Lens (LensLike, traverseOf) import Data.Functor.Compose (Compose(..)) traverseOf2 :: LensLike (Compose f g) s t a b -> (a -> f (g b)) -> s -> f (g t) traverseOf2 k f = getCompose . traverseOf k (Compose . f) With ghc-9.2 and later I get this kind error: src/Ganeti/LensPlain.hs:8:32: error: [GHC-25897] • Couldn't match kind ‘k2’ with ‘*’ When matching types Compose f g0 :: * -> * Compose f g :: k2 -> * Expected: s -> Compose f g t Actual: s -> Compose f g0 t0 ‘k2’ is a rigid type variable bound by the type signature for: traverseOf2 :: forall {k1} {k2} (f :: k1 -> *) (g :: k2 -> k1) s (t :: k2) a (b :: k2). LensLike (Compose f g) s t a b -> (a -> f (g b)) -> s -> f (g t) at src/Ganeti/LensPlain.hs:7:1-79 • In the second argument of ‘(.)’, namely ‘traverseOf k (Compose . f)’ In the expression: getCompose . traverseOf k (Compose . f) In an equation for ‘traverseOf2’: traverseOf2 k f = getCompose . traverseOf k (Compose . f) • Relevant bindings include f :: a -> f (g b) (bound at src/Ganeti/LensPlain.hs:8:15) k :: LensLike (Compose f g) s t a b (bound at src/Ganeti/LensPlain.hs:8:13) traverseOf2 :: LensLike (Compose f g) s t a b -> (a -> f (g b)) -> s -> f (g t) (bound at src/Ganeti/LensPlain.hs:8:1) | 8 | traverseOf2 k f = getCompose . traverseOf k (Compose . f) | ^^^^^^^^^^^^^^^^^^^^^^^^^^ GHC-9.0 accepts the code. Also GHC-9.2 accepts it when the module is compiled as part of a larger Cabal project! I thought that (.) would cause the problem, but manually inlining it does not help. I compiled with: $ ghc-9.6.6 -package lens -c src/Ganeti/LensPlain.hs From tom-lists-haskell-cafe-2023 at jaguarpaw.co.uk Tue Jul 23 16:24:08 2024 From: tom-lists-haskell-cafe-2023 at jaguarpaw.co.uk (Tom Ellis) Date: Tue, 23 Jul 2024 17:24:08 +0100 Subject: [Haskell-cafe] Strange kind error when using Lens.traverseOf In-Reply-To: References: Message-ID: On Tue, Jul 23, 2024 at 04:51:34PM +0200, Henning Thielemann wrote: > I have this simplified module: [...] > src/Ganeti/LensPlain.hs:8:32: error: [GHC-25897] > • Couldn't match kind ‘k2’ with ‘*’ > > GHC-9.0 accepts the code. Also GHC-9.2 accepts it when the module is > compiled as part of a larger Cabal project! [...] > I compiled with: > > $ ghc-9.6.6 -package lens -c src/Ganeti/LensPlain.hs A major difference between 9.0 and 9.2 is that GHC2021 is enabled by default in 9.2. GHC2021 enables PolyKinds, and presumably what used to be assumed to be * (Type) is now generalized to k2. The simplest solution is probably just to put {-# LANGUAGE NoPolyKinds #-} at the top of LensPlain.hs. The reason it works as part of a Cabal project is that Cabal does not turn on GHC2021 by default. Tom From lemming at henning-thielemann.de Tue Jul 23 20:08:53 2024 From: lemming at henning-thielemann.de (Henning Thielemann) Date: Tue, 23 Jul 2024 22:08:53 +0200 (CEST) Subject: [Haskell-cafe] Strange kind error when using Lens.traverseOf In-Reply-To: References: Message-ID: On Tue, 23 Jul 2024, Tom Ellis wrote: > On Tue, Jul 23, 2024 at 04:51:34PM +0200, Henning Thielemann wrote: > >> I compiled with: >> >> $ ghc-9.6.6 -package lens -c src/Ganeti/LensPlain.hs > > A major difference between 9.0 and 9.2 is that GHC2021 is enabled by > default in 9.2. GHC2021 enables PolyKinds, and presumably what used > to be assumed to be * (Type) is now generalized to k2. > > The simplest solution is probably just to put > > {-# LANGUAGE NoPolyKinds #-} > > at the top of LensPlain.hs. The reason it works as part of a Cabal > project is that Cabal does not turn on GHC2021 by default. Perfect! That solves the problem and explains everything. I guess I could be surprised for some more weeks. From john at yourdigitalvoice.net Fri Jul 26 01:54:28 2024 From: john at yourdigitalvoice.net (John Sinclair) Date: Fri, 26 Jul 2024 13:54:28 +1200 Subject: [Haskell-cafe] Functional Conf 2024 - Bengaluru, India Message-ID: ===================================================================== Call for Proposals Functional Conf 2024 21-23 November Bengaluru, India https://functionalconf.com ===================================================================== You are invited to join us for 3 days in-person for Functional Conf, Asia's Premier Functional Programming Conference. Immerse yourself in thought-provoking sessions led by top-notch speakers, engage in hands-on workshops to elevate your coding skills, and network with like-minded professionals. Whether you’re a seasoned pro or a curious beginner, this conference promises to ignite your passion for Functional Programming and revolutionize the way you approach software development. Don’t miss out on this exciting opportunity to be a part of the future of technology. *Call for Proposals is currently open* The stage is set for you to showcase your expertise at our upcoming event through our Call for Proposals. Whether you’re eager to deliver a captivating talk, lead a dynamic demonstration, present a compelling case study, offer an insightful tutorial, share an experience report, or facilitate an engaging workshop of Functional Programming in action, we welcome your submissions with open arms. * Submit a Proposal (deadline: 1 September 2024) https://confengine.com/conferences/functional-conf-2024/proposals * Registration: https://confengine.com/conferences/functional-conf-2024/register/selection Early bird tickets still available! We hope to see you there! -------------- next part -------------- An HTML attachment was scrubbed... URL: From sperber at deinprogramm.de Mon Jul 29 09:17:09 2024 From: sperber at deinprogramm.de (Michael Sperber) Date: Mon, 29 Jul 2024 11:17:09 +0200 Subject: [Haskell-cafe] Call for Participation, Functional Software Architecture (Sep 6, Milan) Message-ID: ====================================================================== *** FUNARCH 2024 -- CALL FOR PARTICIPATION *** The Second ACM SIGPLAN Workshop on Functional Software Architecture - FP in the Large 6th September 2024, Milan, Italy Co-located with ICFP 2024 https://www.functional-architecture.org/events/funarch-2024/ ====================================================================== BACKGROUND: The ACM SIGPLAN Workshop on Functional Software Architecture - FP in the Large aims to disseminate and enable the use of functional programming in the large and long-lived software projects. We specifically want: - To assemble a community interested in software architecture techniques and technologies specific to functional programming; - To identify, categorize, and document topics relevant to the field of functional software architecture; - To connect the functional programming community to the software architecture community to cross-pollinate between the two. We'd love for you to be part of this effort. Whatever your background, you're welcome at FUNARCH - to listen to talks, report on your experience, and interact with others that share our goals. See you at FUNARCH! REGISTRATION: You can register for the workshop via the registration page for the ICFP conference, but there's no need to also register for the conference. Reduced fees are available until 5th August. http://icfp24.sigplan.org/attending/registration KEYNOTE: Architecting Functional Programs Marco Sampellegrini ACCEPTED SUBMISSIONS: F3: A Compiler For Feature Engineering Weixi Ma, Arnaud Venet, Junhua Gu, Subbu Subramanian, Siyu Wang, Rocky Liu (Meta) Daniel Friedman, Yafei Yang (Indiana University) Design and implementation of a verified interpreter for additive manufacturing programs Matthew Sottile, Mohit Tekriwal (Lawrence Livermore National Laboratory) Applying Continuous Formal Methods to Cardano James Chapman, Arnaud Bailly, Polina Vinogradova (IOHK) Continuations: what have they ever done for us? Marc Kaufmann (Austriae Central European University), Bogdan Popa Bidirectional Data Transformations Marcus Crestani, Markus Schlegel, Marco Schneider (Active Group) PROGRAM CHAIRS: Mike Sperber (Active Group, Germany) Perdita Stevens (University of Edinburgh, UK) PROGRAM COMMITTEE: Annette Bieniusa (University of Kaiserslautern) Jeffrey Young (IOG) Will Crichton (Brown University) Isabella Stilkerich (Schaeffler Technologies AG) Kiko Fernandez-Reyes (Ericsson) Ryan Scott (Galois) Satnam Singh (Groq) Facundo Dominguez (Tweag) Ilya Sergey (University of Singapore) Martin Elsman (University of Copenhagen) Benjamin Pierce (University of Pennsylvania) Matthew Flatt (University of Utah) Nada Amin (Harvard University) Richard Eisenberg (Jane Street) WORKSHOP VENUE: The workshop will be co-located with the ICFP 2024 conference at the Milano Convention Centre, Milan, Italy. ====================================================================== From harendra.kumar at gmail.com Mon Jul 29 10:15:16 2024 From: harendra.kumar at gmail.com (Harendra Kumar) Date: Mon, 29 Jul 2024 15:45:16 +0530 Subject: [Haskell-cafe] [ANN] streamly-0.10 with fast binary serialization Message-ID: Streamly is a concurrent stream and array library supporting a wide range of functionality. Important features in the new release include: (1) fast binary serialization to arrays with an option to serialize record field names; (2) the array type can now represent pinned as well unpinned memory, unifying the representations used by bytestring, text and vector; and (3) concurrency support for folds. For more details, see this post: https://blog.composewell.com/v0/posts/streamly-release-0.10.0.html . -harendra From matthewtpickering at gmail.com Mon Jul 29 10:38:25 2024 From: matthewtpickering at gmail.com (Matthew Pickering) Date: Mon, 29 Jul 2024 11:38:25 +0100 Subject: [Haskell-cafe] Haskell Implementors' Workshop - Change of date Message-ID: This year the decision has been taken to combine together Haskell Implementors' Workshop and Haskell Symposium. Therefore the workshop will now take place on the dates September 6/7 (the dates of the Haskell Symposium). Please email me if you have any questions. Cheers, Matt -------------- next part -------------- An HTML attachment was scrubbed... URL: