unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Contributing to Emacs
@ 2022-09-07 20:01 João Paulo Labegalini de Carvalho
  2022-09-07 20:32 ` Mattias Engdegård
                   ` (2 more replies)
  0 siblings, 3 replies; 187+ messages in thread
From: João Paulo Labegalini de Carvalho @ 2022-09-07 20:01 UTC (permalink / raw)
  To: emacs-devel

[-- Attachment #1: Type: text/plain, Size: 2802 bytes --]

Hi,

I started using Emacs about 2 months ago. Now that I am comfortable with
customizing Emacs, getting help, and Elisp, I would like to contribute to
the project.

 I was looking at the file etc/TODO in the repo, and some items there
caught my attention. For example, under 'Important Features'  I found 'Add
an "indirect goto" byte-code'. Is this still a desired feature or is it not
required due to recent efforts towards native compilation? (In the negative
case, please feel free to suggest another item for me to work on)

If it is still desired I would like to work on it and would appreciate
guidance. After taking a look at lisp/emacs-lisp/bytecomp.el,it seems that
forms such as

 (let ((foo (lambda (x) bar)))
     (dosomething
       (funcall foo toto)
       (blabla (funcall foo titi))))

are compiled by calling byte-compile-let. Before generating the binding for
foo, #'(lambda (x) bar) is compiled by calling
byte-compile-push-binding-init, which in turn compiles the lambda to
bytecode and pushes it to the stack.

So to make it more concrete for my sake, I wrote the following form

(let ((foo (lambda (x) (- x 1))))
  (* (funcall foo 2)
     (- (funcall foo 3) 2)))

and with disassemble inspected the generated bytecode by Emacs 28.1

byte code:
  args: nil
0       constant  <compiled-function>
      args: (x)
    0       varref    x
    1       sub1
    2       return

1       dup
2       varbind   foo
3       constant  2
4       call      1
5       varref    foo
6       constant  3
7       call      1
8       constant  2
9       diff
10      mult
11      unbind    1
12      return

As far as I understood,  the idea of the "indirect goto" here is to
eliminate the calls on lines 4 and 7 and replace them with an indirect
goto. And as per the TODO entry, the return in line 2 of the compiled
lambda would also need to be replaced by a jump back.

So here is where I am a bit lost. Currently, the compiled lambda bytecode
lives in the *constant vector* and a reference(?) to it is pushed into
the *evaluation
stack* in line 0 (constant <compiled-function>). Thus, for the indirect
goto idea to work, the bytecode of the lambda would need to be part of the
bytecode of the let's body**. That way, a computed branch can branch into
the lambdas code and it is possible to branch out of it when returning.

Aside from guidance on implementing this, I would appreciate any pointers
on how to adequately test it.

Regards,
-- 
João Paulo L. de Carvalho
Ph.D Computer Science |  IC-UNICAMP | Campinas , SP - Brazil
Postdoctoral Research Fellow | University of Alberta | Edmonton, AB - Canada
joao.carvalho@ic.unicamp.br
joao.carvalho@ualberta.ca

** Forgive me for the lack/miss use of terminology.

[-- Attachment #2: Type: text/html, Size: 3958 bytes --]

^ permalink raw reply	[flat|nested] 187+ messages in thread
* Android port of Emacs
@ 2023-06-16 11:20 Eli Zaretskii
  2023-06-16 15:16 ` Dr. Arne Babenhauserheide
  0 siblings, 1 reply; 187+ messages in thread
From: Eli Zaretskii @ 2023-06-16 11:20 UTC (permalink / raw)
  To: emacs-devel; +Cc: Po Lu

I apologize in advance for not bringing this up earlier.  However,
better late than later or never.

I wonder whether the Android port of Emacs, which is being developed
by Po Lu for the past few months, should be part of the upstream Emacs
and whether it should be distributed as part of the Emacs release
tarballs.  The advantage of having the Android support bundled is that
we allow people to build the Android port right out of the release
tarball.  However, Android is a proprietary platform, so it isn't one
of the systems that we are required to target.  I also don't think
Android (and smartphones in general) will become the main, or even
important, platform for Emacs any time soon.

There are some significant disadvantages of the Android support:

  . it makes the Emacs distribution significantly larger (I think no
    other port, not even the MS-Windows or macOS ports, add so much
    stuff to the distribution)
  . significant portions of the Android support are (and AFAIU must
    be) implemented in Java, which is not used anywhere else in Emacs;
    Emacs developers are therefore not expected to be Java experts,
    and we have no Java-oriented coding conventions in Emacs
  . it requires non-trivial knowledge of the Android platform,
    including its unique requirements and limitations
  . its integration adds some non-trivial hair to many existing Emacs
    APIs and processing, whose purpose is only clear if one considers
    the special Android quirks
  . currently, we have a single developer who understands the
    specifics of the Android port and works on developing it; it is
    not good for Emacs to depend on a single individual for a port
    that should be kept alive and up-to-date for the observable future

Given these IMO significant downsides, I wonder whether we should
maintain the Android support as part of the upstream project.  It
sounds like a non-trivial maintenance burden that relies on a single
developer.  Should we really commit ourselves to this additional work,
from now on?

An alternative would be for the Android support to be a separate
project on Savannah.  Maybe in the long run this would be better?

I think this deserves a serious discussion and a more-or-less
agreed-upon decision, before we decide to land the Android branch and
thus commit ourselves to supporting the Android port.

Once again, apologies for bringing this up so late.  When the work on
this port started, I had no idea the result will be anywhere near
where it is today, or I would speak up much earlier.



^ permalink raw reply	[flat|nested] 187+ messages in thread
* Contributing to Emacs
@ 2013-03-20  5:44 Jacob Criner
  2013-03-21  7:49 ` Xue Fuqiao
  2013-03-26 16:58 ` Stefan Monnier
  0 siblings, 2 replies; 187+ messages in thread
From: Jacob Criner @ 2013-03-20  5:44 UTC (permalink / raw)
  To: emacs-devel

[-- Attachment #1: Type: text/plain, Size: 88 bytes --]

Hello,

I would like to support Emacs by writing documentation. Thank you.

Best, Jacob

[-- Attachment #2: Type: text/html, Size: 175 bytes --]

^ permalink raw reply	[flat|nested] 187+ messages in thread

end of thread, other threads:[~2023-07-09  2:53 UTC | newest]

Thread overview: 187+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-09-07 20:01 Contributing to Emacs João Paulo Labegalini de Carvalho
2022-09-07 20:32 ` Mattias Engdegård
2022-09-08 16:26   ` João Paulo Labegalini de Carvalho
2022-09-08 16:39   ` Eli Zaretskii
2022-09-07 21:33 ` Christopher Dimech
2022-09-08  5:40   ` Eli Zaretskii
2022-09-08 10:22     ` Christopher Dimech
2022-09-08 11:57     ` Christopher Dimech
2022-09-08 12:27       ` Robert Pluim
2022-09-08 13:11         ` Christopher Dimech
2022-09-08 13:25           ` Robert Pluim
2022-09-08 13:38             ` Óscar Fuentes
2022-09-08 14:13               ` Robert Pluim
2022-09-08 14:48                 ` Óscar Fuentes
2022-09-08 15:21             ` Christopher Dimech
2022-09-08 12:12     ` Christopher Dimech
2022-09-08 13:47       ` Eli Zaretskii
2022-09-08 14:49         ` Christopher Dimech
2022-09-08 14:55           ` Visuwesh
2022-09-08 15:16             ` Christopher Dimech
2022-09-08 15:24               ` Robert Pluim
2022-09-08 15:34                 ` Christopher Dimech
2022-09-08 15:37                   ` Visuwesh
2022-09-08 15:39                   ` Robert Pluim
2022-09-08 16:43                     ` Christopher Dimech
2022-09-08 16:11               ` Eli Zaretskii
2022-09-08 16:38                 ` Christopher Dimech
2022-09-08 16:08           ` Eli Zaretskii
2022-09-09 15:09 ` Stefan Monnier
  -- strict thread matches above, loose matches on Subject: below --
2023-06-16 11:20 Android port of Emacs Eli Zaretskii
2023-06-16 15:16 ` Dr. Arne Babenhauserheide
2023-06-16 15:32   ` Eli Zaretskii
2023-06-17  0:49     ` Konstantin Kharlamov
2023-06-17  6:20       ` Eli Zaretskii
2023-06-17 13:34         ` Konstantin Kharlamov
2023-06-17 16:47           ` Alfred M. Szmidt
2023-06-17 18:11             ` contributing to Emacs Konstantin Kharlamov
2023-06-17 18:36               ` Alfred M. Szmidt
2023-06-17 19:39                 ` Konstantin Kharlamov
2023-06-17 21:00                   ` Alfred M. Szmidt
2023-06-17 21:10                     ` Konstantin Kharlamov
2023-06-17 21:19                       ` Alfred M. Szmidt
2023-06-17 21:26                         ` Konstantin Kharlamov
2023-06-17 22:25                           ` Alfred M. Szmidt
2023-06-17 22:39                             ` Konstantin Kharlamov
2023-06-18  5:20                               ` Eli Zaretskii
2023-06-18  8:53                                 ` Konstantin Kharlamov
2023-06-18  9:01                                   ` Po Lu
2023-06-18  9:23                                     ` Konstantin Kharlamov
2023-06-18  9:25                                       ` Po Lu
2023-06-18 10:04                                         ` Konstantin Kharlamov
2023-06-18 10:07                                           ` Po Lu
2023-06-18  9:57                                       ` Alfred M. Szmidt
2023-06-18  9:01                                   ` Eli Zaretskii
2023-06-18  9:06                                     ` Eli Zaretskii
2023-06-18  9:21                                       ` Konstantin Kharlamov
2023-06-18 12:00                                         ` Michael Albinus
2023-06-18  9:18                                     ` Konstantin Kharlamov
2023-06-18  9:35                                       ` Eli Zaretskii
2023-06-18 21:16                                         ` Dmitry Gutov
2023-06-18 10:00                                   ` Philip Kaludercic
2023-06-18 10:15                                     ` Konstantin Kharlamov
2023-06-18 10:22                                       ` Philip Kaludercic
2023-06-23  6:49                                         ` Sean Whitton
2023-06-24 15:37                                           ` Philip Kaludercic
2023-06-25  7:40                                             ` Sean Whitton
2023-06-18 12:13                                       ` Po Lu
2023-06-18 12:26                                         ` Konstantin Kharlamov
2023-06-18 13:43                                           ` Alfred M. Szmidt
2023-06-18 14:57                                             ` Dr. Arne Babenhauserheide
2023-06-18 16:29                                               ` Eli Zaretskii
2023-06-18 18:52                                                 ` Dr. Arne Babenhauserheide
2023-06-18 19:10                                                   ` Alfred M. Szmidt
2023-06-18 19:11                                                   ` Eli Zaretskii
2023-06-18 20:10                                                     ` Konstantin Kharlamov
2023-06-19  2:24                                                       ` Eli Zaretskii
2023-06-19  6:05                                                         ` Dr. Arne Babenhauserheide
2023-06-19 18:07                                                         ` David Masterson
2023-06-19 18:50                                                           ` Eli Zaretskii
2023-06-19 21:29                                                             ` Konstantin Kharlamov
2023-06-19 22:49                                                               ` David Masterson
2023-06-20 11:14                                                               ` Eli Zaretskii
2023-06-20 15:45                                                                 ` Konstantin Kharlamov
2023-06-20 16:14                                                                   ` Eli Zaretskii
2023-06-20 16:32                                                                     ` Lynn Winebarger
2023-06-20 16:42                                                                       ` Eli Zaretskii
2023-06-20 19:49                                                                     ` Konstantin Kharlamov
2023-06-24  1:44                                                                     ` Björn Bidar
2023-06-24  3:10                                                                       ` Po Lu
2023-06-24  7:00                                                                       ` Eli Zaretskii
2023-06-24  7:54                                                                         ` Michael Albinus
2023-06-25  2:25                                                                       ` Richard Stallman
2023-06-25 16:41                                                                         ` Corwin Brust
2023-06-25 23:31                                                                           ` Björn Bidar
2023-06-26 16:47                                                                             ` Ian Kelling
2023-06-27 11:08                                                                             ` Yuchen Pei
2023-06-27 13:52                                                                               ` Corwin Brust
2023-06-28  4:33                                                                               ` Björn Bidar
2023-06-29  3:03                                                                               ` Richard Stallman
2023-07-03  2:32                                                                                 ` Björn Bidar
2023-07-03  4:25                                                                                   ` Dr. Arne Babenhauserheide
2023-07-05  2:07                                                                                     ` Richard Stallman
2023-07-04  1:58                                                                                   ` Richard Stallman
2023-07-05 13:19                                                                                 ` Yuchen Pei
2023-07-09  2:53                                                                                   ` Richard Stallman
2023-06-27  1:05                                                                           ` Richard Stallman
2023-06-28  2:18                                                                           ` Richard Stallman
2023-06-20 16:24                                                                   ` Alfred M. Szmidt
2023-06-20 16:33                                                                   ` Dr. Arne Babenhauserheide
2023-06-19 22:47                                                             ` David Masterson
2023-06-20  1:17                                                               ` Po Lu
2023-06-20  2:24                                                                 ` David Masterson
2023-06-20  7:01                                                                 ` Alfred M. Szmidt
2023-06-21  0:51                                                                 ` Richard Stallman
2023-06-21  4:13                                                                   ` Po Lu
2023-06-21  4:23                                                                   ` David Masterson
2023-06-23  1:47                                                                     ` Richard Stallman
2023-06-23  2:28                                                                       ` Po Lu
2023-06-25  2:25                                                                         ` Richard Stallman
2023-06-20 11:20                                                               ` Eli Zaretskii
2023-06-18  8:34                               ` Alfred M. Szmidt
2023-06-18  8:58                                 ` Konstantin Kharlamov
2023-06-18  0:50                             ` Po Lu
2023-06-20  2:55                               ` Richard Stallman
2023-06-20  3:39                                 ` Po Lu
2023-06-21  9:20                                   ` Gregory Heytings
2023-06-22  1:56                                   ` Richard Stallman
2023-06-22  2:23                                     ` Po Lu
2023-06-22  7:47                                       ` Philip Kaludercic
2023-06-22  7:59                                         ` Po Lu
2023-06-22  8:38                                         ` Dr. Arne Babenhauserheide
2023-06-20 11:30                                 ` Eli Zaretskii
2023-06-17 21:44                         ` chad
2023-06-18  9:26                     ` Dr. Arne Babenhauserheide
2023-06-18 10:05                       ` Eli Zaretskii
2023-06-18 10:30                         ` Dr. Arne Babenhauserheide
2023-06-18 10:52                           ` Eli Zaretskii
2023-06-18 11:00                             ` Dr. Arne Babenhauserheide
2023-06-18 10:57                       ` Konstantin Kharlamov
2023-06-18  8:59                   ` Dr. Arne Babenhauserheide
2023-06-18  9:30                     ` Konstantin Kharlamov
2023-06-18  9:34                       ` Konstantin Kharlamov
2023-06-18  9:56                       ` Konstantin Kharlamov
2023-06-18 10:02                         ` Eli Zaretskii
2023-06-18 10:13                           ` Konstantin Kharlamov
2023-06-18 10:22                             ` Eli Zaretskii
2023-06-18 10:27                               ` Konstantin Kharlamov
2023-06-18 10:36                                 ` Eli Zaretskii
2023-06-18 10:44                                   ` Konstantin Kharlamov
2023-06-18 10:59                                     ` Eli Zaretskii
2023-06-18 11:14                                       ` Konstantin Kharlamov
2023-06-18 11:32                                         ` Eli Zaretskii
2023-06-18 11:54                                           ` Konstantin Kharlamov
2023-06-18 12:18                                             ` Eli Zaretskii
2023-06-18 12:24                                               ` Konstantin Kharlamov
2023-06-18 15:20                                                 ` Dr. Arne Babenhauserheide
2023-06-18 10:54                                 ` Dr. Arne Babenhauserheide
2023-06-18 11:11                                   ` Konstantin Kharlamov
2023-06-18 12:10                                 ` Po Lu
2023-06-18 12:28                                   ` Konstantin Kharlamov
2023-06-18 12:51                                     ` Eli Zaretskii
2023-06-18 13:02                                       ` Konstantin Kharlamov
2023-06-18 13:13                                         ` Eli Zaretskii
2023-06-18 13:32                                     ` Po Lu
2023-06-18 13:50                                       ` Konstantin Kharlamov
2023-06-18 10:12                         ` Po Lu
2023-06-18 10:22                           ` Konstantin Kharlamov
2023-06-18 12:09                             ` Po Lu
2023-06-18 12:30                               ` Konstantin Kharlamov
2023-06-18 13:29                                 ` Po Lu
2023-06-18 13:55                                   ` Konstantin Kharlamov
2023-06-18 12:33                               ` Konstantin Kharlamov
2023-06-18 13:30                                 ` Po Lu
2023-06-18 13:57                                   ` Konstantin Kharlamov
2023-06-23  6:51                           ` Sean Whitton
2023-06-23  7:06                             ` Po Lu
2023-06-23  7:14                               ` Sean Whitton
2023-06-23  7:17                             ` Eli Zaretskii
2023-06-24  7:21                               ` Sean Whitton
2023-06-24  7:43                                 ` Eli Zaretskii
2023-06-24 12:36                                   ` Konstantin Kharlamov
2023-06-24 14:44                                     ` Eli Zaretskii
2023-06-24 16:17                                       ` Konstantin Kharlamov
2023-06-24 17:13                                         ` Eli Zaretskii
2023-06-25  7:39                                   ` Sean Whitton
2023-06-18  9:43                     ` Eli Zaretskii
2023-06-18 10:19                       ` Dr. Arne Babenhauserheide
2023-06-18 10:31                         ` Eli Zaretskii
2023-06-18 10:50                           ` Dr. Arne Babenhauserheide
2023-06-18 11:29                             ` Eli Zaretskii
2013-03-20  5:44 Contributing " Jacob Criner
2013-03-21  7:49 ` Xue Fuqiao
2013-03-26 16:58 ` Stefan Monnier
2013-03-26 17:33   ` Drew Adams

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).