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?Aleix_Conchillo_Flaqu=C3=A9?= Newsgroups: gmane.lisp.guile.devel Subject: [PATCH] vectors: add (vector-last) support Date: Mon, 21 Dec 2020 01:44:40 -0800 Message-ID: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="000000000000458dd205b6f64ff0" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="24220"; mail-complaints-to="usenet@ciao.gmane.io" To: guile-devel Original-X-From: guile-devel-bounces+guile-devel=m.gmane-mx.org@gnu.org Mon Dec 21 10:45:14 2020 Return-path: Envelope-to: guile-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 1krHkd-00065I-AJ for guile-devel@m.gmane-mx.org; Mon, 21 Dec 2020 10:45:11 +0100 Original-Received: from localhost ([::1]:57868 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1krHkc-0001Zo-15 for guile-devel@m.gmane-mx.org; Mon, 21 Dec 2020 04:45:10 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:34840) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1krHkN-0001Zf-T0 for guile-devel@gnu.org; Mon, 21 Dec 2020 04:44:55 -0500 Original-Received: from mail-pg1-x52a.google.com ([2607:f8b0:4864:20::52a]:37327) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1krHkM-0001nM-8e for guile-devel@gnu.org; Mon, 21 Dec 2020 04:44:55 -0500 Original-Received: by mail-pg1-x52a.google.com with SMTP id z21so6040715pgj.4 for ; Mon, 21 Dec 2020 01:44:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=b2ks46sTzf+0DSJCVeVXoktptGupeuzo78bO5YCyCgY=; b=Js90F6AhGlVMWCVYdogoFzWTastOUkqDGFXb2FsYBKsA5kgeaC3um9qf4hsl3HGsXs bxCAwcF8ZlGVKIJMxALCj4L3xmontNcszTNA+7Z8BEaW5wkg+ux+TkhEex6aTHxI4aTV pP2u+qAm0fFq/yjrv7pNFuaLkPxSnuzIUAG4N2rRF2i9+zCsdV+AWDJqLz7SRCnVXq8t OXT5I/ZysC+iSZGoSRCYJKMCsbW9zaisD0kLQQhxFKS9wcqhzLK1tKYq8vDMx7WwkL6V ZlVok9wdKQsho3BjNNAlVAI2yflq/AFCWIwn6Pr0vn1nvYhsdxsSmrcI6BfSmQCKGBoU r2jQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=b2ks46sTzf+0DSJCVeVXoktptGupeuzo78bO5YCyCgY=; b=XcWpYOye/b4wd1sllYT2Slv8L443EyPBuD9ezszZG560I3A3mqfn1FSFN3GyD7UhG/ Gf+SKlSjz7yxYQwVV/22etHn9dFtk/d2hjMTs2cTPZHAQHsS8ZaAZlJUuhXeZ8JIRJ+a 08MOX/dKfrbOPUjw4/Gj8gc4iK85qxl4f2gGTpYQ7jaXvUCu0mo4OFT4RwUEwhd4TBMZ 0HOeqx/IbBtmDeK0CYLQsvZ5Jsb8TxxOl/KxryhoC7zCypMmR1ScNWpMxh+IKSMv+IMO zb0lGmuTcjo/nAo3O/VndnKO7oKyZBNs61qyu+urDk7Rc+tqMPidcHygXtgOl5uU/27w ZxjQ== X-Gm-Message-State: AOAM533mmgEXjBP4ORC8GSWXkPY7QtrmvMswtqrh2M0Zs1tTp7sj86Ih p4Jm7NUHLLL9oE7KRanJjNiG95tny0E/Im2Y0OCyw9sQjE8= X-Google-Smtp-Source: ABdhPJxzh7ytrloUFihz6IbG2Q5Th2u5kAbwz6aD8PQV08u0/Ethoduvw8ZjnsdbRzzIF15blAE+IGFwd5qubNklV/o= X-Received: by 2002:a62:644c:0:b029:1a1:f568:d2d9 with SMTP id y73-20020a62644c0000b02901a1f568d2d9mr14755639pfb.64.1608543891711; Mon, 21 Dec 2020 01:44:51 -0800 (PST) Received-SPF: pass client-ip=2607:f8b0:4864:20::52a; envelope-from=aconchillo@gmail.com; helo=mail-pg1-x52a.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: guile-devel@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Developers list for Guile, the GNU extensibility library" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-devel-bounces+guile-devel=m.gmane-mx.org@gnu.org Original-Sender: "guile-devel" Xref: news.gmane.io gmane.lisp.guile.devel:20624 Archived-At: --000000000000458dd205b6f64ff0 Content-Type: text/plain; charset="UTF-8" Hi, Attached is a patch to add support for a new function (vector-last) that will retrieve the last element of a vector. This avoids having to do (vector-ref v (- (vector-length v) 1)). Let me know what you think. Thanks, Aleix --000000000000458dd205b6f64ff0 Content-Type: application/octet-stream; name="0001-vectors-add-vector-last-support.patch" Content-Disposition: attachment; filename="0001-vectors-add-vector-last-support.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kiydh7rx0 RnJvbSBiYmIyMjEyNzc1YTFjZDRiNTIxZDc2NzRkNjBmMjQxMGY3OTdmYjc4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/QWxlaXg9MjBDb25jaGlsbG89MjBGbGFxdT1D Mz1BOT89IDxhY29uY2hpbGxvQGdtYWlsLmNvbT4KRGF0ZTogTW9uLCAyMSBEZWMgMjAyMCAwMToz MzoxMSAtMDgwMApTdWJqZWN0OiBbUEFUQ0hdIHZlY3RvcnM6IGFkZCAodmVjdG9yLWxhc3QpIHN1 cHBvcnQKCiogbGliZ3VpbGUvdmVjdG9ycy5jOiBhZGQgKHZlY3Rvci1sYXN0KSBzdXBwb3J0LgoK KiBsaWJndWlsZS92ZWN0b3JzLmg6IGRlZmluZSBzY21fdmVjdG9yX2xhc3QgYW5kIHNjbV9jX3Zl Y3Rvcl9sYXN0LgoKKiBkb2MvcmVmL2FwaS1kYXRhLnRleGkgKFZlY3RvciBBY2Nlc3NvcnMpOiBh ZGQgZG9jdW1lbnRhdGlvbiBmb3IKKHZlY3Rvci1sYXN0KS4KLS0tCiBkb2MvcmVmL2FwaS1kYXRh LnRleGkgICAgICAgICB8IDEwICsrKysrKysrKysKIGxpYmd1aWxlL3ZlY3RvcnMuYyAgICAgICAg ICAgIHwgMzAgKysrKysrKysrKysrKysrKysrKysrKysrKysrKystCiBsaWJndWlsZS92ZWN0b3Jz LmggICAgICAgICAgICB8ICA2ICsrKystLQogdGVzdC1zdWl0ZS90ZXN0cy9zcmZpLTQzLnRlc3Qg fCAxMiArKysrKysrKysrKy0KIDQgZmlsZXMgY2hhbmdlZCwgNTQgaW5zZXJ0aW9ucygrKSwgNCBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2MvcmVmL2FwaS1kYXRhLnRleGkgYi9kb2MvcmVm L2FwaS1kYXRhLnRleGkKaW5kZXggMmFkMTNmNWE1Li4wODc4YzExNzMgMTAwNjQ0Ci0tLSBhL2Rv Yy9yZWYvYXBpLWRhdGEudGV4aQorKysgYi9kb2MvcmVmL2FwaS1kYXRhLnRleGkKQEAgLTYzNTQs NiArNjM1NCwxNiBAQCBSZXR1cm4gdGhlIGNvbnRlbnRzIG9mIHBvc2l0aW9uIEB2YXJ7a30gKGEg QGNvZGV7c2l6ZV90fSkgb2YKIEB2YXJ7dmVjfS4KIEBlbmQgZGVmdHlwZWZuCiAKK0BybmluZGV4 IHZlY3Rvci1sYXN0CitAZGVmZm4ge1NjaGVtZSBQcm9jZWR1cmV9IHZlY3Rvci1sYXN0IHZlYwor QGRlZmZueCB7QyBGdW5jdGlvbn0gc2NtX3ZlY3Rvcl9sYXN0ICh2ZWMpCitSZXR1cm4gdGhlIGNv bnRlbnRzIG9mIHRoZSBsYXN0IGVsZW1lbnQgb2YgQHZhcnt2ZWN9LgorQGVuZCBkZWZmbgorCitA ZGVmdHlwZWZuIHtDIEZ1bmN0aW9ufSBTQ00gc2NtX2NfdmVjdG9yX2xhc3QgKFNDTSB2ZWMpCitS ZXR1cm4gdGhlIGNvbnRlbnRzIG9mIHRoZSBsYXN0IGVsZW1lbnQgb2YgQHZhcnt2ZWN9LgorQGVu ZCBkZWZ0eXBlZm4KKwogQSB2ZWN0b3IgY3JlYXRlZCBieSBvbmUgb2YgdGhlIGR5bmFtaWMgdmVj dG9yIGNvbnN0cnVjdG9yIHByb2NlZHVyZXMKIChAcHhyZWZ7VmVjdG9yIENyZWF0aW9ufSkgY2Fu IGJlIG1vZGlmaWVkIHVzaW5nIHRoZSBmb2xsb3dpbmcKIHByb2NlZHVyZXMuCmRpZmYgLS1naXQg YS9saWJndWlsZS92ZWN0b3JzLmMgYi9saWJndWlsZS92ZWN0b3JzLmMKaW5kZXggMGYxZTYwODVl Li5mMDc5ZjFmNTMgMTAwNjQ0Ci0tLSBhL2xpYmd1aWxlL3ZlY3RvcnMuYworKysgYi9saWJndWls ZS92ZWN0b3JzLmMKQEAgLTE5Myw3ICsxOTMsMzUgQEAgc2NtX2NfdmVjdG9yX3JlZiAoU0NNIHYs IHNpemVfdCBrKQogfQogI3VuZGVmIEZVTkNfTkFNRQogCi1TQ01fREVGSU5FIChzY21fdmVjdG9y X3NldF94LCAidmVjdG9yLXNldCEiLCAzLCAwLCAwLCAKK1NDTV9ERUZJTkUgKHNjbV92ZWN0b3Jf bGFzdCwgInZlY3Rvci1sYXN0IiwgMSwgMCwgMCwKKwkgICAgKFNDTSB2ZWN0b3IpLAorICAgICAg ICAgICAgIkBzYW1we1ZlY3Rvci1yZWZ9IHJldHVybnMgdGhlIGNvbnRlbnRzIG9mIHRoZSBsYXN0 IGVsZW1lbnQgb2ZcbiIKKyAgICAgICAgICAgICJAdmFye3ZlY3Rvcn0uXG5cbiIKKyAgICAgICAg ICAgICJAbGlzcFxuIgorICAgICAgICAgICAgIih2ZWN0b3ItcmVmICcjKDMgMSAyNyA1KSkgQHJl c3VsdHt9IDVcbiIKKyAgICAgICAgICAgICJAZW5kIGxpc3AiKQorI2RlZmluZSBGVU5DX05BTUUg c19zY21fdmVjdG9yX2xhc3QKK3sKKyAgcmV0dXJuIHNjbV9jX3ZlY3Rvcl9sYXN0ICh2ZWN0b3Ip OworfQorI3VuZGVmIEZVTkNfTkFNRQorCitTQ00KK3NjbV9jX3ZlY3Rvcl9sYXN0IChTQ00gdikK KyNkZWZpbmUgRlVOQ19OQU1FIHNfc2NtX3ZlY3Rvcl9sYXN0Cit7CisgIFNDTV9WQUxJREFURV9W RUNUT1IgKDEsIHYpOworCisgIHNpemVfdCBsZW4gPSBTQ01fSV9WRUNUT1JfTEVOR1RIICh2KTsK KworICBpZiAobGVuID09IDApCisgICAgc2NtX291dF9vZl9yYW5nZSAoTlVMTCwgMCk7CisKKyAg cmV0dXJuIHNjbV9jX3ZlY3Rvcl9yZWYgKHYsIGxlbiAtIDEpOworfQorI3VuZGVmIEZVTkNfTkFN RQorCitTQ01fREVGSU5FIChzY21fdmVjdG9yX3NldF94LCAidmVjdG9yLXNldCEiLCAzLCAwLCAw LAogCSAgICAoU0NNIHZlY3RvciwgU0NNIGssIFNDTSBvYmopLAogICAgICAgICAgICAgIkB2YXJ7 a30gbXVzdCBiZSBhIHZhbGlkIGluZGV4IG9mIEB2YXJ7dmVjdG9yfS5cbiIKICAgICAgICAgICAg ICJAY29kZXtWZWN0b3Itc2V0IX0gc3RvcmVzIEB2YXJ7b2JqfSBpbiBlbGVtZW50IEB2YXJ7a30g b2YgQHZhcnt2ZWN0b3J9LlxuIgpkaWZmIC0tZ2l0IGEvbGliZ3VpbGUvdmVjdG9ycy5oIGIvbGli Z3VpbGUvdmVjdG9ycy5oCmluZGV4IDQxZTJjODkwOS4uMDhmZTE5ZjQ5IDEwMDY0NAotLS0gYS9s aWJndWlsZS92ZWN0b3JzLmgKKysrIGIvbGliZ3VpbGUvdmVjdG9ycy5oCkBAIC0xLDcgKzEsNyBA QAogI2lmbmRlZiBTQ01fVkVDVE9SU19ICiAjZGVmaW5lIFNDTV9WRUNUT1JTX0gKIAotLyogQ29w eXJpZ2h0IDE5OTUtMTk5NiwxOTk4LDIwMDAtMjAwMiwyMDA0LTIwMDYsMjAwOC0yMDA5LDIwMTEs MjAxNCwyMDE4CisvKiBDb3B5cmlnaHQgMTk5NS0xOTk2LDE5OTgsMjAwMC0yMDAyLDIwMDQtMjAw NiwyMDA4LTIwMDksMjAxMSwyMDE0LDIwMTgsMjAyMAogICAgICBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24sIEluYy4KIAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgR3VpbGUuCkBAIC0zMiwxMyAr MzIsMTQgQEAgU0NNX0FQSSBTQ00gc2NtX3ZlY3Rvcl9wIChTQ00geCk7CiBTQ01fQVBJIFNDTSBz Y21fdmVjdG9yX2xlbmd0aCAoU0NNIHYpOwogU0NNX0FQSSBTQ00gc2NtX3ZlY3RvciAoU0NNIGwp OwogU0NNX0FQSSBTQ00gc2NtX3ZlY3Rvcl9yZWYgKFNDTSB2LCBTQ00gayk7CitTQ01fQVBJIFND TSBzY21fdmVjdG9yX2xhc3QgKFNDTSB2KTsKIFNDTV9BUEkgU0NNIHNjbV92ZWN0b3Jfc2V0X3gg KFNDTSB2LCBTQ00gaywgU0NNIG9iaik7CiBTQ01fQVBJIFNDTSBzY21fbWFrZV92ZWN0b3IgKFND TSBrLCBTQ00gZmlsbCk7CiBTQ01fQVBJIFNDTSBzY21fdmVjdG9yX3RvX2xpc3QgKFNDTSB2KTsK IFNDTV9BUEkgU0NNIHNjbV92ZWN0b3JfZmlsbF94IChTQ00gdiwgU0NNIGZpbGxfeCk7CiBTQ01f QVBJIFNDTSBzY21fdmVjdG9yX21vdmVfbGVmdF94IChTQ00gdmVjMSwgU0NNIHN0YXJ0MSwgU0NN IGVuZDEsCiAJCQkJICAgIFNDTSB2ZWMyLCBTQ00gc3RhcnQyKTsKLVNDTV9BUEkgU0NNIHNjbV92 ZWN0b3JfbW92ZV9yaWdodF94IChTQ00gdmVjMSwgU0NNIHN0YXJ0MSwgU0NNIGVuZDEsIAorU0NN X0FQSSBTQ00gc2NtX3ZlY3Rvcl9tb3ZlX3JpZ2h0X3ggKFNDTSB2ZWMxLCBTQ00gc3RhcnQxLCBT Q00gZW5kMSwKIAkJCQkgICAgIFNDTSB2ZWMyLCBTQ00gc3RhcnQyKTsKIFNDTV9BUEkgU0NNIHNj bV92ZWN0b3JfY29weSAoU0NNIHZlYyk7CiAKQEAgLTQ3LDYgKzQ4LDcgQEAgU0NNX0FQSSBpbnQg c2NtX2lzX3NpbXBsZV92ZWN0b3IgKFNDTSBvYmopOwogU0NNX0FQSSBTQ00gc2NtX2NfbWFrZV92 ZWN0b3IgKHNpemVfdCBsZW4sIFNDTSBmaWxsKTsKIFNDTV9BUEkgc2l6ZV90IHNjbV9jX3ZlY3Rv cl9sZW5ndGggKFNDTSB2ZWMpOwogU0NNX0FQSSBTQ00gc2NtX2NfdmVjdG9yX3JlZiAoU0NNIHZl Yywgc2l6ZV90IGspOworU0NNX0FQSSBTQ00gc2NtX2NfdmVjdG9yX2xhc3QgKFNDTSB2ZWMpOwog U0NNX0FQSSB2b2lkIHNjbV9jX3ZlY3Rvcl9zZXRfeCAoU0NNIHZlYywgc2l6ZV90IGssIFNDTSBv YmopOwogU0NNX0FQSSBjb25zdCBTQ00gKnNjbV92ZWN0b3JfZWxlbWVudHMgKFNDTSB2ZWMsCiAJ CQkJCXNjbV90X2FycmF5X2hhbmRsZSAqaCwKZGlmZiAtLWdpdCBhL3Rlc3Qtc3VpdGUvdGVzdHMv c3JmaS00My50ZXN0IGIvdGVzdC1zdWl0ZS90ZXN0cy9zcmZpLTQzLnRlc3QKaW5kZXggNTU0ODQz ZTc1Li40ZDAwOTM5NzQgMTAwNjQ0Ci0tLSBhL3Rlc3Qtc3VpdGUvdGVzdHMvc3JmaS00My50ZXN0 CisrKyBiL3Rlc3Qtc3VpdGUvdGVzdHMvc3JmaS00My50ZXN0CkBAIC0xLDYgKzEsNiBAQAogOzs7 OyBzcmZpLTQzLnRlc3QgLS0tIHRlc3Qgc3VpdGUgZm9yIFNSRkktNDMgVmVjdG9yIGxpYnJhcnkg LSotIHNjaGVtZSAtKi0KIDs7OzsKLTs7OzsgQ29weXJpZ2h0IChDKSAyMDE0IEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbiwgSW5jLgorOzs7OyBDb3B5cmlnaHQgKEMpIDIwMTQsIDIwMjAgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiA7Ozs7CiA7Ozs7IFRoaXMgbGlicmFyeSBpcyBmcmVl IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKIDs7OzsgbW9kaWZ5IGl0 IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwpAQCAtMzkw LDYgKzM5MCwxNiBAQAogICAocGFzcy1pZi1lcnJvciAibm9uLXZlY3RvciIgKHZlY3Rvci1yZWYg JyhhIGIgYykgMCkpCiAgIChwYXNzLWlmLWVycm9yICJpbmV4YWN0IGluZGV4IiAodmVjdG9yLXJl ZiAnIyhhIGIgYykgMS4wKSkpCiAKKzs7Cis7OyB2ZWN0b3ItbGFzdAorOzsKKworKHdpdGgtdGVz dC1wcmVmaXggInZlY3Rvci1sYXN0IgorICAocGFzcy1pZi1lcXVhbCAic2luZ2xlIGVsZW1lbnQi ICdhICh2ZWN0b3ItbGFzdCAnIyhhKSkpCisgIChwYXNzLWlmLWVxdWFsICJtdWx0aXBsZSBlbGVt ZW50cyIgJ2MgKHZlY3Rvci1sYXN0ICcjKGEgYiBjKSkpCisgIChwYXNzLWlmLWVycm9yICJlbXB0 eSB2ZWN0b3IiICh2ZWN0b3ItbGFzdCAnIygpKSkKKyAgKHBhc3MtaWYtZXJyb3IgIm5vbi12ZWN0 b3IiICh2ZWN0b3ItbGFzdCAnKGEgYiBjKSkpKQorCiA7OwogOzsgdmVjdG9yLWxlbmd0aAogOzsK LS0gCjIuMjkuMgoK --000000000000458dd205b6f64ff0--