From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: "Artyom V. Poptsov" Newsgroups: gmane.lisp.guile.user Subject: [ANN] Guile-DSV 0.7.2 released Date: Mon, 05 Aug 2024 06:46:51 +0300 Message-ID: <87le1bzl5g.fsf@gmail.com> Mime-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha512; protocol="application/pgp-signature" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="25061"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) To: Guile Users' Mailing List Original-X-From: guile-user-bounces+guile-user=m.gmane-mx.org@gnu.org Mon Aug 05 05:47:44 2024 Return-path: Envelope-to: guile-user@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 1saohE-0006Nn-L4 for guile-user@m.gmane-mx.org; Mon, 05 Aug 2024 05:47:44 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1saogg-0003u5-I9; Sun, 04 Aug 2024 23:47:10 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1saoge-0003tY-1Y for guile-user@gnu.org; Sun, 04 Aug 2024 23:47:08 -0400 Original-Received: from mail-lj1-x229.google.com ([2a00:1450:4864:20::229]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1saogb-00044m-NY for guile-user@gnu.org; Sun, 04 Aug 2024 23:47:07 -0400 Original-Received: by mail-lj1-x229.google.com with SMTP id 38308e7fff4ca-2f136e23229so87069171fa.1 for ; Sun, 04 Aug 2024 20:47:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1722829622; x=1723434422; darn=gnu.org; h=mime-version:user-agent:message-id:date:subject:to:from:from:to:cc :subject:date:message-id:reply-to; bh=lVR/Xja5CBFaKkUeMZRvRPssKKvU1MAZ+Cf6mzMev4Q=; b=aXvvjttDbWB2hl6T7YLvUwB0GS5Q5l7SGTHB00BZxf2kGWmlEJYxLk6KDHPQ3WHJij nUA3dUPNly9B1YjTuS6GayLWgSUIlKkBLmJaOF0fAAoIg64CpEVJvUBF9GlymjjrqxRF ov6FJ8QkUJmWDdruyVzdO0cn/6K3ELGRiQziipHu+NyZn+4NMV3I2JvtWUqOhy8+/QFX MArlZkyKOTop3Y/zPIOrcavF7BeeaX66hZZIdFxflmraSQwf5vG3Ol4tFslZrlHhR31w Z5djkvgvb3kIXgLu+FUHIw4iCATU2C+3NGLf5M7zWk4RCUj8hTcbdbV8lP6NNXRKVZfh RCWw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1722829622; x=1723434422; h=mime-version:user-agent:message-id:date:subject:to:from :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=lVR/Xja5CBFaKkUeMZRvRPssKKvU1MAZ+Cf6mzMev4Q=; b=lL6t4+Zm88CiXy5kJWkJMzzA17z8dHUiyAKSBW8/lCGr+OC0sRrLvpvD2wTk+RquU1 PGTy3yq/OGu6mRZG8x1FhWDUYiJrWHdhOxqeDAjal2RFoS9rOK40gkNpwqDUeB/igIn3 0a8BGyv2vCaX9rYWIJzoAAlXxAIsw9J51Mx2iLxh4mYWwunkLl3F0AC9yDv/aAIFnne6 LyKItdsDgVugo4l9QP3YyUuZy8avd/JoKAa3bpch7w/wuDJOFYJ4JOZHCuqVH+xcim4z VtqO8N+IXXQGro2TpseMSvX851KR3KPugi2amTO8KFPLoZZytBv2SbcPzwbNxNDeVCeT LZ5w== X-Gm-Message-State: AOJu0YyJQSvBUQiRbQqCeDlKJTQnnGnM2vYWzNLHx1MQgRT9uNwZSYm6 Zj4YXmhW/sma2+5EJPrrOtqCmY90b504vs0ApWxfY7D/ONQqQAQsacZaspEl X-Google-Smtp-Source: AGHT+IEC+dw+N62h7mBJSkhYCIBKZ7xx//uaClNuy/xRaSDCZxK4c3g7rGFgHD8KTr8f2cDDP8PFGw== X-Received: by 2002:a05:6512:1095:b0:52f:441:bdd9 with SMTP id 2adb3069b0e04-530bb382137mr6315326e87.34.1722829621560; Sun, 04 Aug 2024 20:47:01 -0700 (PDT) Original-Received: from elephant ([5.3.222.28]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-530bd435bf7sm906246e87.272.2024.08.04.20.47.00 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 04 Aug 2024 20:47:00 -0700 (PDT) Received-SPF: pass client-ip=2a00:1450:4864:20::229; envelope-from=poptsov.artyom@gmail.com; helo=mail-lj1-x229.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-user@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: General Guile related discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-user-bounces+guile-user=m.gmane-mx.org@gnu.org Original-Sender: guile-user-bounces+guile-user=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.lisp.guile.user:19755 Archived-At: --=-=-= Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Hello Guilers, I'm pleased to announce Guile-DSV 0.7.2: https://github.com/artyom-poptsov/guile-dsv/releases/tag/v0.7.2 This release includes two important bugfixes: First of all, now parsers can check if a table have consistent column number between rows and throw an informative error when column numbers do not match. Second, the Guile-DSV table formatter now handles tables with less than two columns properly. See the full list of user-visible changes below. * What is Guile-DSV? Guile-DSV is a library that allows to parse Delimiter-Separated Values format (DSV). It supports two flavors of DSV: Unix-style[1] and RFC4180[2]. Also Guile-DSV is shipped with a program named "dsv" that allows to read and process DSV format (including delimiter change and conversion from one standard to another, formatting tables etc.) See README file for usage examples. * List of user visible changes Here's an excerpt from the NEWS file: =2D-8<---------------cut here---------------start------------->8--- * Changes in version 0.7.2 (2024-08-04) ** Bugfixes *** Parsers now can check if the table rows have consistent lengths Guile-DSV table formatters would always fail when a table has inconsistent column number in rows. Now this is fixed by adding an additional check for the row length consistency to the parser. This behavior is enabled by default for the CLI. For =3Ddsv->scm=3D and =3Ddsv-string->scm=3D procedures validation is disabled by default. The ra= tionale is that in CLI a user most likely wants to pretty-print a table, and in that case we currently cannot print a ill-formatted table anyways so it's reasonable to throw an error as soon as possible. For the programming API = it is normal to read ill-formatted data as it is up to user how to handle the errors and there are more than one way to solve problems with data. Plus we keep the API backward-compatible with Guile-DSV 0.7.1. *** Table formatter now handles tables with less than 2 columns The Guile-DSV table formatter would always fail when a table has less than 2 columns. Now this is fixed. *** Fix =3Dmake distcheck=3D Now the command produces a distribution of the package as it should. ** Improvements to the project documentation *** New =3DARCHITECTURE.org=3D file This file contains the overview of the Guile-DSV architecture (as proposed = in .) *** New =3DCODE_OF_CONDUCT.org=3D file The document is a copy of convert= ed into org-mode format. =2D-8<---------------cut here---------------end--------------->8--- Thanks and happy hacking! =2D Artyom 1. http://www.catb.org/~esr/writings/taoup/html/ch05s02.html#id2901882 2. https://tools.ietf.org/html/rfc4180 =2D-=20 Artyom "avp" Poptsov Home page: https://memory-heap.org/~avp/ CADR Hackerspace co-founder: https://cadrspace.ru/ GPG: D0C2 EAC1 3310 822D 98DE B57C E9C5 A2D9 0898 A02F --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQJNBAEBCgA3FiEEAf2F9Bp7f4IFgwalk16+BzbchX4FAmawSy8ZHHBvcHRzb3Yu YXJ0eW9tQGdtYWlsLmNvbQAKCRCTXr4HNtyFfr5DD/wJFckx6L00VfktX3+Mb4bn l6fB0ujVSZxOlgphiwi/IOYG5LdY492iwivQ/1IlA17vWt8ehuerWuISbqVcb0aB i6D/c0x1QrqZcHBJNh/SPMoJFq7/FmsnWWh1te90ofqu4l5rZM/Qr/yxhOSLxvzI JvyWE/r3oli6j8NyaQkbeF2tbtv4BhYO4n/U8TXA6hpLStb8NIL5FJu9POdzpoBp aMOqs51aSF8Go0KpgPmXiZdEes+k1zjoeTDTE3UxJUN1SDBs8hSe1NV1+uA0ZXXL uw4vs2G9y5olUPnd70sl6JNGh+90ivjVgJXp5ln14Vzxm7LSlqFwKQgakUkwvsYH DiObMkkLis9uUw5cApcF3kw8kECp1BAxB5m2UOAhgiv509/xGuFb1OKU+G6AA8cZ cNgrBqY8QZNqxGMebmTGdhYv3K6efMxoCWS4CrgeRzmBz/c9A1rQzkWoGcXdC9d+ GxhYsZqatiaYKT/GD5QN3zSNkAJFvuKUxzl7fsOCJ1KKJrQW2OtCPG/lISEN1v70 MM2FmhrITfK2S65iest86r2OYlGDHvvCDJQ8dQbvQfPqkCR4FYHhAcbmN0G8kGxA x9NsA4onV1+htqwzGSdU9wPm3b+pY9AcceuU92QrQxr7cxvo2DhlU2QpblDOUkmF 9h2ESsFUanv6eNUMWQF0AA== =5cDH -----END PGP SIGNATURE----- --=-=-=--