From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: =?UTF-8?Q?Harald_J=c3=b6rg?= Newsgroups: gmane.emacs.devel Subject: Re-vitalizing cperl-mode Date: Thu, 2 Jul 2020 13:34:43 +0200 Message-ID: <7e274cb1-dfeb-6d04-0ffc-892f55eba659@posteo.de> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="5304"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.9.0 To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Thu Jul 02 13:35:32 2020 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1jqxV5-0001GW-WB for ged-emacs-devel@m.gmane-mx.org; Thu, 02 Jul 2020 13:35:32 +0200 Original-Received: from localhost ([::1]:46892 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jqxV5-00019G-09 for ged-emacs-devel@m.gmane-mx.org; Thu, 02 Jul 2020 07:35:31 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:59786) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jqxUP-0000SJ-NO for emacs-devel@gnu.org; Thu, 02 Jul 2020 07:34:50 -0400 Original-Received: from mout01.posteo.de ([185.67.36.65]:58192) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jqxUN-0004aa-6p for emacs-devel@gnu.org; Thu, 02 Jul 2020 07:34:49 -0400 Original-Received: from submission (posteo.de [89.146.220.130]) by mout01.posteo.de (Postfix) with ESMTPS id 28DB816005C for ; Thu, 2 Jul 2020 13:34:44 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.de; s=2017; t=1593689684; bh=JPiF1CiPsL4FuNQ01iyUKXoyprfM5gEnyuXLAW/MtzY=; h=To:From:Subject:Autocrypt:Date:From; b=hHyaCvYeirCrgMVHDwjKelhK/i/7oOdAZfa7cnyFeTqID5vS5zuOhcKYVb3jgOCHD DsOwecA2UbshCINGsg76jQJ7zYbyHkwuQxNNGBVwV4LV0v/CKDbIgX4JaMlYl7+Sr6 JCUQAWgAzfXNSFLu3uFT4fBDzqgIzet45Tww8zG+vPQ4iLAh0mMoxaPVyP2q2McqB3 dTQry24X7y7yprWnmGDF/CcxvOAkp+JmL33x3IM3aO7QwIFmwjEaxp+E/zUO1nYm7Z 5hK30Xt1bnRRxDK6Aq7ppAmf6LZ/BiREyh6iya8mjZmYynm0GlwZHIujaSfjfRnu59 uVVuENuOpA2tQ== Original-Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 49yGGW58HMz9rxx for ; Thu, 2 Jul 2020 13:34:43 +0200 (CEST) Autocrypt: addr=haj@posteo.de; keydata= mQINBF0DVrIBEAC7TRlIilBg/5Dx7R2rV4FBDEavbyMT2cS2wWyksh7JA8e17LNmTdakf+Bm u6C2m6+frolteYRlkreoyAg0fj/5tDw/s5dJDw3tM0b+m/pj2HcwTSRpQSEy5lBiCg11E6Mt F9UngCfkGtJzu8PBWXc1RDQVBwRn5MZbpMZZatE8NOq9AA3Yg6sY11Ez3xIvYU2R7a4OSxmc RJV2+dhdQ4oOTBIGQ2urQSU81kyRtkx+/Yh8WefMrk9nF3nzYziLS53euCAXyzklwYmD6Li3 XSu7wYp5fISky9DK6DPFK7h4RXEL4GFAhy31ehrVnNTcGRohM1Dm9BV9dwXkwlaeT3q0X+nE SXVqPDHtv748bXNIg2WVCZ0WgShcA46XVlSE9Fm+w0HI/1m1L4BaMmQ7gyK5dEchbhxohkk0 AqC3hEJ4ULRidrsCoCWGMFKiOIb9rjeC00vhrUkVJDkPWEGLXjhnRQykb6cESko0rPrSDLqX 9YqaNQ6KO9Un6uogE7YnXYg35EXJ8ORdX257IbXNbFVpgM8FFsl48WV3Pl9WNdADhnnOrz3O wzyK58i/BTsnjVX8ghbWkQcPQ2Kprt+4YR2trEi7TM5Uqzzrg0vp7Oe/9KZBxdxCE67thV7h ElW3CHb4q6o31b4cFmLbtFesSy+hnUU4UymgHgi/hvhxioBxIQARAQABtBxIYXJhbGQgSsO2 cmcgPGhhakBwb3N0ZW8uZGU+iQJOBBMBCAA4FiEEIpYEZLQynxF8Q17KN4XzzzqAcpsFAl0D VrICGwMFCwkIBwIGFQgJCgsCBBYCAwECHgECF4AACgkQN Content-Language: en-US Received-SPF: pass client-ip=185.67.36.65; envelope-from=haj@posteo.de; helo=mout01.posteo.de X-detected-operating-system: by eggs.gnu.org: First seen = 2020/07/02 07:34:44 X-ACL-Warn: Detected OS = Linux 3.11 and newer X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H4=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001 autolearn=_AUTOLEARN X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:252622 Archived-At: Hello Emacs devs, Emacs comes with cperl-mode, a major mode to edit Perl programs. I am using it, and I'm happy with it. However, Perl is evolving... and I noticed that cperl-mode isn't developed accordingly. New versions of Perl might come with new keywords for syntax highlighting (e.g. "isa" in Perl 5.32), or with new syntactic constructs which affect highlighting, indenting, and indexing for imenu (e.g. "package Foo { ...; }" in Perl 5.14). These are not handled correctly by cperl-mode right now. I come here to ask for guidance how to proceed and to offer help. For the easy part, I created my own repository for cperl-mode at https://github.com/HaraldJoerg/cperl-mode. While working on that, I found that some things are easy to fix, while others need some refactoring, so things have diverged a bit, but not too much. I maintain the current state of my hacking at https://github.com/HaraldJoerg/cperl-mode/blob/master/etc/NEWS. So I could file bug reports and pull requests against Emacs which would be trivial in some cases... but some come with bigger changes in the innards of cperl-mode. There is no test suite for cperl-mode, and my very limited experience with elisp doesn't help. Should I just keep the status quo - and the Emacs dev team will decide whether, and which of my changes you will adopt into the next Emacs release? Would it be an option to give cperl-mode a "dual life" in Emacs and in (M)ELPA? That way, changes in the Perl programming language could be reacted upon without waiting for the next release of Emacs - and new features could be tested by volunteers from the Perl community before they are, eventually, merged into Emacs when they are considered stable. In any case: What rules / conventions / tools and frameworks should I obey to make my changes palatable for Emacs and/or (M)ELPA? In any case, I'll also ask for feedback in the Perl community. First casual contacts in Perl's IRC channel stirred interest, and there seem to be as many opinions as participants. Business as usual :) -- Cheers, and thanks for providing Emacs and cperl-mode, haj