all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: <tomas@tuxteam.de>
To: help-gnu-emacs@gnu.org
Subject: Re: try-this-for ?
Date: Thu, 18 Jan 2018 10:27:24 +0100	[thread overview]
Message-ID: <20180118092724.GA29536@tuxteam.de> (raw)
In-Reply-To: <86d1277u37.fsf@zoho.com>

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On Thu, Jan 18, 2018 at 03:56:44AM +0100, Emanuel Berg wrote:

[...]

> Right, I suspected that... so what I ask for
> perhaps cannot be done because of the very
> architecture? There is no preemption,
> only collaboration?

There be dragons. Or dragons and mad cows.

Up to now, Emacs Lisp's model of concurrency seems to
be explicitly cooperative. The two spots in the manual
to start with ("Special Events" [0] and, in a more
modern Emacs version "Threads" [1] hint at this. Currently
it seems to be a basic limitation of the interpreter,
although the verbiage in [1] suggests that there is an
active will to change that.

So if you want to get "signals" right deep in your
search for the next Mersenne prime, you'll have to
embed some form of "yield" [2] in your calculation.

But if you alre already "yielding" at strategic spots
in your Mersenne quest, you can as well consult your
watch (i.e. give the timer functions a chance to run),
so you don't need signals, threads or other exotica
for that [3].

Believe me, this is the easier part, and if you plan
carefully and develop some sense of aesthetics it comes
about pretty organically. The dragons are elsewhere.

Cows? I never said anything about them, oh, no.

Cheers

[0] https://www.gnu.org/software/emacs/manual/html_node/elisp/Special-Events.html#Special-Events
[1] http://git.savannah.gnu.org/cgit/emacs.git/tree/doc/lispref/threads.texi?h=emacs-26
[2] https://en.wikipedia.org/wiki/Generator_(computer_programming)
[3] What do I need threads for, then? For one, if you want
   to wield more computing power in one process: remember,
   the box you bought has at least two cores, and each core
   not dedicated to Emacs is one core wasted.

- -- tomás
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (GNU/Linux)

iEYEARECAAYFAlpgaHwACgkQBcgs9XrR2kaDXwCdGWfdXn/4Ymm83RKSwzX8/7hl
4IoAn3ZiADkHIlI+YeU2YJV2dj6XdEsw
=3VTm
-----END PGP SIGNATURE-----



  reply	other threads:[~2018-01-18  9:27 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-01-17 21:04 try-this-for ? Emanuel Berg
2018-01-17 23:50 ` John Mastro
2018-01-18  2:08 ` Bob Newell
     [not found] ` <mailman.7535.1516241346.27995.help-gnu-emacs@gnu.org>
2018-01-18  2:52   ` Emanuel Berg
     [not found] ` <mailman.7534.1516233062.27995.help-gnu-emacs@gnu.org>
2018-01-18  2:56   ` Emanuel Berg
2018-01-18  9:27     ` tomas [this message]
     [not found]     ` <mailman.7540.1516267658.27995.help-gnu-emacs@gnu.org>
2018-01-18 12:00       ` Emanuel Berg
2018-01-18 12:03         ` Emanuel Berg
2018-01-18 12:11           ` Emanuel Berg
2018-01-18 12:43         ` tomas
2018-01-18 15:14           ` Eli Zaretskii
2018-01-18 15:23             ` tomas
     [not found]         ` <mailman.7544.1516279427.27995.help-gnu-emacs@gnu.org>
2018-01-18 12:59           ` Emanuel Berg
2018-01-18 13:16             ` tomas
     [not found]             ` <mailman.7546.1516281409.27995.help-gnu-emacs@gnu.org>
2018-01-18 22:44               ` Emanuel Berg
2018-01-19  8:38                 ` tomas
     [not found]                 ` <mailman.7613.1516351115.27995.help-gnu-emacs@gnu.org>
2018-01-19  8:55                   ` Emanuel Berg
2018-01-19  9:25                     ` tomas
     [not found]                     ` <mailman.7614.1516353949.27995.help-gnu-emacs@gnu.org>
2018-01-19 10:47                       ` Emanuel Berg
2018-01-19 11:22                         ` tomas

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180118092724.GA29536@tuxteam.de \
    --to=tomas@tuxteam.de \
    --cc=help-gnu-emacs@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

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

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.