[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Help-smalltalk] adding smalltalk-mode to ELPA?
From: |
Stefan Monnier |
Subject: |
Re: [Help-smalltalk] adding smalltalk-mode to ELPA? |
Date: |
Sun, 07 Apr 2019 13:43:51 -0400 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux) |
>>> Anyway, from what I understand, you have no intention of moving
>>> smalltalk-mode.el elsewhere nor to spend your time with a 2-way sync.
>>> In that case, I think it's best not to add smalltalk-mode.el to GNU
>>> ELPA to avoid the risk of a fork.
>> i am not a member of the smalltalk dev team, they are listed on
>> savannah[1] - i was only offering some general observations,
>> anticipating what i would expect to be the response of most upstreams
>> when asked to to do the things you are suggesting
> I am currently not a GNU Emacs user and as a result have been quiet on
> this topic.
> There seems to be benefit[1] to move the smalltalk-model.el into the GNU
> ELPA repository. I can check what rms wrote but I need one of you to do
> the actual move.
Here's what I suggest:
- I used `filter-branch` to get a Git branch which only contains the
Elisp files of the GNU Smalltalk distribution
(i.e. smalltalk-mode.el, gst-mode.el.in, and
smalltalk-mode-init.el.in, but not snprintfv/doc/gnome-doc.el which
seems unrelated).
- I wrote the tentative patch below which converts gst-mode.el.in to
gst-mode.el (by assuming `gst` can be found in $PATH), and moves the
content of smalltalk-mode-init.el.in into smalltalk-mode.el (with
autoload annotations so that these get executed at startup when the
smalltalk-mode package is activated rather than only later when/if the
smalltalk-mode.el file is loaded). It also slightly reformats the
copyright blurbs to better follow the conventions and changes the
GPLv2+ to GPLv3+.
I can add the result to elpa.git (from where elpa.gnu.org will create
a GNU ELPA package). As things stand, this package would be labeled
"version 3.2.92".
If you disagree with some part of the patch below, feel free to point it
out so I can adjust it.
After that's done, I guess you could annotate your copy of those files
with a blurb explaining that the upstream version of the code can be
found in http://elpa.gnu.org/packages/smalltalk-mode.html.
Does that sound good?
Stefan
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 000000000..fcf24f130
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,3 @@
+*.elc
+smalltalk-mode-pkg.el
+smalltalk-mode-autoloads.el
diff --git a/gst-mode.el.in b/gst-mode.el
similarity index 91%
rename from gst-mode.el.in
rename to gst-mode.el
index 15713acdd..02f820d9c 100644
--- a/gst-mode.el.in
+++ b/gst-mode.el
@@ -1,29 +1,31 @@
+;;; gst-mode.el --- Interaction with GNU Smalltalk subprocess
+;;
+;; Copyright 1988-2019 Free Software Foundation, Inc.
+;; Written by Steve Byrne.
+;;
+;; This file is part of GNU Smalltalk.
+;;
+;; GNU Smalltalk is free software; you can redistribute it and/or modify it
+;; under the terms of the GNU General Public License as published by the Free
+;; Software Foundation; either version 3, or (at your option) any later
+;; version.
+;;
+;; GNU Smalltalk is distributed in the hope that it will be useful, but
+;; WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+;; or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+;; for more details.
+;;
+;; You should have received a copy of the GNU General Public License
+;; along with this program. If not, see <http://www.gnu.org/licenses/>.
+;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;;;
-;;; Copyright 1988-92, 1994-95, 1999, 2000, 2003, 2007, 2008
-;;; Free Software Foundation, Inc.
-;;; Written by Steve Byrne.
-;;;
-;;; This file is part of GNU Smalltalk.
-;;;
-;;; GNU Smalltalk is free software; you can redistribute it and/or modify it
-;;; under the terms of the GNU General Public License as published by the Free
-;;; Software Foundation; either version 2, or (at your option) any later
-;;; version.
-;;;
-;;; GNU Smalltalk is distributed in the hope that it will be useful, but
-;;; WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-;;; or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-;;; for more details.
-;;;
-;;; You should have received a copy of the GNU General Public License along
-;;; with GNU Smalltalk; see the file COPYING. If not, write to the Free
-;;; Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301, USA.
-;;;
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;;; Incorporates Frank Caggiano's changes for Emacs 19.
-;;; Updates and changes for Emacs 20 and 21 by David Forster
+;;; Commentary:
+
+;; Incorporates Frank Caggiano's changes for Emacs 19.
+;; Updates and changes for Emacs 20 and 21 by David Forster
+
+;;; Code:
(require 'comint)
@@ -32,7 +34,7 @@
(defvar *gst-process* nil
"Holds the GNU Smalltalk process")
-(defvar gst-program-name "@bindir@/gst -V"
+(defvar gst-program-name "gst -V"
"GNU Smalltalk command to run. Do not use the -a, -f or -- options.")
(defvar smalltalk-command-string nil
@@ -63,6 +65,7 @@
keymap)
"Keymap used in Smalltalk interactor mode.")
+;;;###autoload
(defun gst (command-line)
"Invoke GNU Smalltalk"
(interactive (list (if (null current-prefix-arg)
diff --git a/smalltalk-mode-init.el.in b/smalltalk-mode-init.el.in
deleted file mode 100644
index a2dbef9d4..000000000
--- a/smalltalk-mode-init.el.in
+++ /dev/null
@@ -1,19 +0,0 @@
-;; Autoload file for smalltalk-mode
-
-;; duplicate zip files' setup for star files or fall back on
-;; archive-mode, which scans file contents to determine type so is
-;; safe to use
-(push (cons "\\.star\\'"
- (catch 'archive-mode
- (dolist (mode-assoc auto-mode-alist 'archive-mode)
- (and (string-match (car mode-assoc) "Starfile.zip")
- (functionp (cdr mode-assoc))
- (throw 'archive-mode (cdr mode-assoc))))))
- auto-mode-alist)
-
-(if (boundp 'inhibit-local-variables-regexps)
- (push "\\.star\\'" inhibit-local-variables-regexps)
- (push "\\.star\\'" inhibit-first-line-modes-regexp))
-
address@hidden@(autoload 'gst "@lispdir@/gst-mode.elc" "" t)
-
diff --git a/smalltalk-mode.el b/smalltalk-mode.el
index 6eb3b566c..e92d410b2 100644
--- a/smalltalk-mode.el
+++ b/smalltalk-mode.el
@@ -2,14 +2,13 @@
;; Author: Steve Byrne
;; Version: 3.2.92
-;; Copyright 1988-92, 1994-95, 1999, 2000, 2003, 2007, 2008, 2009
-;; Free Software Foundation, Inc.
+;; Copyright 1988-2019 Free Software Foundation, Inc.
;; This file is part of GNU Smalltalk.
;; GNU Smalltalk is free software; you can redistribute it and/or modify it
;; under the terms of the GNU General Public License as published by the Free
-;; Software Foundation; either version 2, or (at your option) any later
+;; Software Foundation; either version 3, or (at your option) any later
;; version.
;; GNU Smalltalk is distributed in the hope that it will be useful, but
@@ -231,6 +230,27 @@ Commands:
;;;###autoload
(add-to-list 'auto-mode-alist '("\\.st\\'" . smalltalk-mode))
+;; GNU Smalltalk uses files with name `.star' which use the zip format.
+;; Duplicate zip files' setup for star files or fall back on
+;; archive-mode, which scans file contents to determine type so is
+;; safe to use.
+;;;###autoload
+(add-to-list
+ 'auto-mode-alist
+ (cons "\\.star\\'"
+ (catch 'archive-mode
+ (dolist (mode-assoc auto-mode-alist 'archive-mode)
+ (and (string-match (car mode-assoc) "Starfile.zip")
+ (functionp (cdr mode-assoc))
+ (throw 'archive-mode (cdr mode-assoc)))))))
+
+;;;###autoload
+(add-to-list (if (boundp 'inhibit-local-variables-regexps)
+ 'inhibit-local-variables-regexps
+ 'inhibit-first-line-modes-regexp)
+ "\\.star\\'")
+
+
(defun smalltalk-tab ()
(interactive)
(let (col)
- Re: [Help-smalltalk] adding smalltalk-mode to ELPA?,
Stefan Monnier <=