[elpa] master d56dd03: Improve single precision floating point serialisation

2019-12-18 Thread Mario Lang
branch: master
commit d56dd0378c5f8a582066c636599be1f297691142
Author: Mario Lang 
Commit: Mario Lang 

Improve single precision floating point serialisation

* packages/osc/osc.el: Update copyright years and author email.
* (osc-insert-float32): Use `copysign' and `isnan'.
---
 packages/osc/osc.el | 12 +---
 1 file changed, 5 insertions(+), 7 deletions(-)

diff --git a/packages/osc/osc.el b/packages/osc/osc.el
index 9f92b17..316b532 100644
--- a/packages/osc/osc.el
+++ b/packages/osc/osc.el
@@ -1,8 +1,8 @@
 ;;; osc.el --- Open Sound Control protocol library
 
-;; Copyright (C) 2014  Free Software Foundation, Inc.
+;; Copyright (C) 2014-2019  Free Software Foundation, Inc.
 
-;; Author: Mario Lang 
+;; Author: Mario Lang 
 ;; Version: 0.1
 ;; Keywords: comm, processes, multimedia
 
@@ -57,15 +57,13 @@
 (defun osc-insert-float32 (value)
   (let (s (e 0) f)
 (cond
- ((string= (format "%f" value) (format "%f" -0.0))
-  (setq s 1 f 0))
- ((string= (format "%f" value) (format "%f" 0.0))
-  (setq s 0 f 0))
+ ((= value 0.0)
+  (setq s (if (< (copysign 1.0 value) 0) 1 0) f 0))
  ((= value 1.0e+INF)
   (setq s 0 e 255 f (1- (expt 2 23
  ((= value -1.0e+INF)
   (setq s 1 e 255 f (1- (expt 2 23
- ((string= (format "%f" value) (format "%f" 0.0e+NaN))
+ ((isnan value)
   (setq s 0 e 255 f 1))
  (t
   (setq s (if (>= value 0.0)



[elpa] externals/windower 520f1b5 1/2: Init

2019-12-18 Thread Stefan Monnier
branch: externals/windower
commit 520f1b59d080996a0efc2aea29a76f165d3d63f5
Author: Pierre Neidhardt 
Commit: Pierre Neidhardt 

Init
---
 COPYING | 674 
 readme.org  |  35 
 windower.el | 205 ++
 3 files changed, 914 insertions(+)

diff --git a/COPYING b/COPYING
new file mode 100644
index 000..94a9ed0
--- /dev/null
+++ b/COPYING
@@ -0,0 +1,674 @@
+GNU GENERAL PUBLIC LICENSE
+   Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. 
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+Preamble
+
+  The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+  The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works.  By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users.  We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors.  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+  To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights.  Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received.  You must make sure that they, too, receive
+or can get the source code.  And you must show them these terms so they
+know their rights.
+
+  Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+  For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software.  For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+  Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so.  This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software.  The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable.  Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products.  If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+  Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary.  To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+   TERMS AND CONDITIONS
+
+  0. Definitions.
+
+  "This License" refers to version 3 of the GNU General Public License.
+
+  "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+  "The Program" refers to any copyrightable work licensed under this
+License.  Each licensee is addressed as "you".  "Licensees" and
+"recipients" may be individuals or organizations.
+
+  To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy.  The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+  A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+  To "propagate" a work means to do anything with i

[elpa] externals/windower c959a3a 2/2: Remove obsolete windower-swap-windows from commentary.

2019-12-18 Thread Stefan Monnier
branch: externals/windower
commit c959a3a3de07daabc30bf46588efe8b4d39ab2c4
Author: Pierre Neidhardt 
Commit: Pierre Neidhardt 

Remove obsolete windower-swap-windows from commentary.
---
 windower.el | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/windower.el b/windower.el
index 2641b90..af01f2f 100644
--- a/windower.el
+++ b/windower.el
@@ -28,10 +28,9 @@
 ;; This package provides the commands below.  The commands are most useful when
 ;; bound to accessible bindings, for instance:
 ;;
-;;   (global-set-key (kbd "C-x \\") 'windower-swap-windows)
-;;   (global-set-key (kbd "C-x C-\\") 'windower-toggle-split)
 ;;   (global-set-key (kbd "") 'windower-switch-to-last-buffer)
 ;;   (global-set-key (kbd "") 'windower-toggle-single)
+;;   (global-set-key (kbd "s-\\") 'windower-toggle-split)
 ;;
 ;;   (global-set-key (kbd "") 'windower-move-border-left)
 ;;   (global-set-key (kbd "") 'windower-move-border-below)



[elpa] branch externals/windower created (now c959a3a)

2019-12-18 Thread Stefan Monnier
monnier pushed a change to branch externals/windower.

at  c959a3a   Remove obsolete windower-swap-windows from commentary.

This branch includes the following new commits:

   new  520f1b5   Init
   new  c959a3a   Remove obsolete windower-swap-windows from commentary.




[elpa] externals/windower ab9d42b: * windower.el: Fix copyright

2019-12-18 Thread Stefan Monnier
branch: externals/windower
commit ab9d42b2ffb0ffa97aec93378859be6819f3e839
Author: Stefan Monnier 
Commit: Stefan Monnier 

* windower.el: Fix copyright
---
 windower.el | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/windower.el b/windower.el
index af01f2f..2cec69f 100644
--- a/windower.el
+++ b/windower.el
@@ -1,6 +1,6 @@
 ;;; windower.el --- Helper functions for window manipulation. -*- 
lexical-binding: t -*-
 
-;; Copyright (C) 2019 Pierre Neidhardt 
+;; Copyright (C) 2019  Free Software Foundation, Inc.
 ;;
 ;; Author: Pierre Neidhardt 
 ;; URL: https://gitlab.com/ambrevar/windower
@@ -189,8 +189,8 @@ It only works for frames with exactly two windows."
  (splitter
   (if (= (car this-win-edges)
  (car (window-edges (next-window
-  'split-window-horizontally
-'split-window-vertically)))
+  #'split-window-horizontally
+#'split-window-vertically)))
 (delete-other-windows)
 (let ((first-win (selected-window)))
   (funcall splitter)



[elpa] master e24cf02: * externals-list: Add Windower

2019-12-18 Thread Stefan Monnier
branch: master
commit e24cf027e8bbede073026dff3d4f8982e246a1a0
Author: Stefan Monnier 
Commit: Stefan Monnier 

* externals-list: Add Windower
---
 externals-list | 1 +
 1 file changed, 1 insertion(+)

diff --git a/externals-list b/externals-list
index 35f2d29..c1c93e7 100644
--- a/externals-list
+++ b/externals-list
@@ -152,6 +152,7 @@
  ("web-server" :subtree 
"https://github.com/eschulte/emacs-web-server.git";)
  ("webfeeder"  :external 
"https://gitlab.com/ambrevar/emacs-webfeeder.git";)
  ("websocket"  :subtree 
"https://github.com/ahyatt/emacs-websocket.git";)
+ ("windower"   :external "https://gitlab.com/ambrevar/emacs-windower";)
  ("wisitoken-grammar-mode" :external nil)
  ("which-key"   :subtree "https://github.com/justbur/emacs-which-key";)
  ("xelb"   :external "https://github.com/ch11ng/xelb.git";)



[elpa] externals/windower 5f77e1c: * .gitignore: Ignore generated files

2019-12-18 Thread Stefan Monnier
branch: externals/windower
commit 5f77e1cbb517d0df61735e3277002252f53a6182
Author: Stefan Monnier 
Commit: Stefan Monnier 

* .gitignore: Ignore generated files
---
 .gitignore | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/.gitignore b/.gitignore
new file mode 100644
index 000..dabd2a5
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,3 @@
+*.elc
+windower-autoloads.el
+windower-pkg.el



[elpa] branch externals/elisp-benchmarks created (now 9fc36f1)

2019-12-18 Thread Stefan Monnier
monnier pushed a change to branch externals/elisp-benchmarks.

at  9fc36f1   New package initial add

This branch includes the following new commits:

   new  9fc36f1   New package initial add




[elpa] externals/elisp-benchmarks 9fc36f1: New package initial add

2019-12-18 Thread Stefan Monnier
branch: externals/elisp-benchmarks
commit 9fc36f12f9920b23f5b779292e4007eaa064a3d1
Author: Andrea Corallo 
Commit: Stefan Monnier 

New package initial add

Add a package for benchmarking the elisp implementation.
---
 benchmarks/bubble-no-cons.el |  45 +
 benchmarks/bubble.el |  48 ++
 benchmarks/fibn-rec.el   |  33 ++
 benchmarks/fibn-tc.el|  35 ++
 benchmarks/fibn.el   |  40 
 benchmarks/inclist.el|  42 
 benchmarks/listlen-tc.el |  41 
 benchmarks/pidigits.el   |  71 
 elisp-benchmarks.el  | 150 +++
 9 files changed, 505 insertions(+)

diff --git a/benchmarks/bubble-no-cons.el b/benchmarks/bubble-no-cons.el
new file mode 100644
index 000..012a32c
--- /dev/null
+++ b/benchmarks/bubble-no-cons.el
@@ -0,0 +1,45 @@
+;; -*- lexical-binding: t; -*-
+
+;; Copyright (C) 2019 Free Software Foundation, Inc.
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs 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 of the License, or
+;; (at your option) any later version.
+
+;; GNU Emacs 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 Emacs.  If not, see .
+
+;;; Commentary:
+
+;; Like bubble but in place.
+
+(require 'cl-lib)
+
+(defvar elb-bubble-len 1000)
+(defvar elb-bubble-list (mapcar #'random (make-list elb-bubble-len
+   most-positive-fixnum)))
+(defun elb-bubble-no-cons (list)
+  (cl-loop repeat (length list)
+  do
+  (cl-loop for x on list
+   for a = (car x)
+   for b = (cadr x)
+   when (and b (> a b))
+ do (setcar x b)
+(setcar (cdr x) a)
+   finally (return list
+
+(defun elb-bubble-no-cons-entry ()
+  (cl-loop repeat 200
+  for l = (copy-sequence elb-bubble-list)
+  do (elb-bubble-no-cons l)))
+
+(provide 'elb-bubble)
diff --git a/benchmarks/bubble.el b/benchmarks/bubble.el
new file mode 100644
index 000..d7101b1
--- /dev/null
+++ b/benchmarks/bubble.el
@@ -0,0 +1,48 @@
+;; -*- lexical-binding: t; -*-
+
+;; Copyright (C) 2019 Free Software Foundation, Inc.
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs 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 of the License, or
+;; (at your option) any later version.
+
+;; GNU Emacs 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 Emacs.  If not, see .
+
+;;; Commentary:
+
+;; From:
+;; https://www.emacswiki.org/emacs/EmacsLispBenchmark
+
+(require 'cl-lib)
+
+(defvar elb-bubble-len 1000)
+(defvar elb-bubble-list (mapcar #'random (make-list elb-bubble-len
+   most-positive-fixnum)))
+
+(defun elb-bubble (list)
+  (let ((i (length list)))
+(while (> i 1)
+  (let ((b list))
+(while (cdr b)
+  (when (< (cadr b) (car b))
+(setcar b (prog1 (cadr b)
+(setcdr b (cons (car b) (cddr b))
+  (setq b (cdr b
+  (setq i (1- i)))
+list))
+
+(defun elb-bubble-entry ()
+  (cl-loop repeat 100
+  for l = (copy-sequence elb-bubble-list)
+  do (elb-bubble l)))
+
+(provide 'elb-bubble)
diff --git a/benchmarks/fibn-rec.el b/benchmarks/fibn-rec.el
new file mode 100644
index 000..a8e4b6c
--- /dev/null
+++ b/benchmarks/fibn-rec.el
@@ -0,0 +1,33 @@
+;; -*- lexical-binding: t; -*-
+
+;; Copyright (C) 2019 Free Software Foundation, Inc.
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs 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 of the License, or
+;; (at your option) any later version.
+
+;; GNU Emacs 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

[elpa] externals/elisp-benchmarks cca22d9: * .gitignore: Ignore generated files

2019-12-18 Thread Stefan Monnier
branch: externals/elisp-benchmarks
commit cca22d9a3de0efcaa0f806e3ec25c8948f684791
Author: Stefan Monnier 
Commit: Stefan Monnier 

* .gitignore: Ignore generated files
---
 .gitignore | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/.gitignore b/.gitignore
new file mode 100644
index 000..57fbab9
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,3 @@
+*.elc
+/elisp-benchmarks-pkg.el
+/elisp-benchmarks-autoloads.el



[elpa] master cdb83f9: * externals-list: Add elisp-benchmarks

2019-12-18 Thread Stefan Monnier
branch: master
commit cdb83f91300fcbfac2ae4476f026d86d430cdc16
Author: Stefan Monnier 
Commit: Stefan Monnier 

* externals-list: Add elisp-benchmarks
---
 externals-list | 1 +
 1 file changed, 1 insertion(+)

diff --git a/externals-list b/externals-list
index c1c93e7..2996b9e 100644
--- a/externals-list
+++ b/externals-list
@@ -80,6 +80,7 @@
  ("eev":external "https://github.com/edrx/eev.git";)
  ("eglot"   :external "https://github.com/joaotavora/eglot.git";)
  ("eldoc-eval" :subtree 
"https://github.com/thierryvolpiatto/eldoc-eval.git";)
+ ("elisp-benchmarks"   :external nil)
  ("enwc"   :subtree 
"bzr::bzr://bzr.savannah.nongnu.org/enwc/trunk")
  ("ergoemacs-mode" :external 
"https://github.com/ergoemacs/ergoemacs-mode.git";)
  ("exwm"   :external "https://github.com/ch11ng/exwm.git";)