From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp10.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms5.migadu.com with LMTPS id CP3xHLPWgmPNYgAAbAwnHQ (envelope-from ) for ; Sun, 27 Nov 2022 04:17:07 +0100 Received: from aspmx1.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp10.migadu.com with LMTPS id aCgDHLPWgmOtDgAAG6o9tA (envelope-from ) for ; Sun, 27 Nov 2022 04:17:07 +0100 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 175A5FEB0 for ; Sun, 27 Nov 2022 04:17:06 +0100 (CET) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oz89g-0003cb-Ql; Sat, 26 Nov 2022 22:16:33 -0500 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 1oz89W-0003cE-Sv for guix-devel@gnu.org; Sat, 26 Nov 2022 22:16:22 -0500 Received: from mail-qk1-x72e.google.com ([2607:f8b0:4864:20::72e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1oz89V-0003oy-9E; Sat, 26 Nov 2022 22:16:22 -0500 Received: by mail-qk1-x72e.google.com with SMTP id x18so5089177qki.4; Sat, 26 Nov 2022 19:16:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:user-agent:message-id :in-reply-to:date:references:subject:cc:to:from:from:to:cc:subject :date:message-id:reply-to; bh=mBqubKGiT+Q6fQ0DUJzmiyjTdF/2t3hzfheKfffxhy4=; b=nJuHQ2RpdeSFT6x23c22CyjlOynMAZjM20TF+vVja8zU6eCquplgOyd282iY2toez3 /qEJKWVYdW7V/pr1rShlzdceBecWZyf95MC468U8DxiCUuSRyYArOeqLP3PfCoabYhf7 9B9YMADRy1F9s7L7ASrd+ohTNeHe4rjbnyhE7u53u1kB1Mr7yzgwTitBkHBaZCMKs9QL o+f/1UmUhjcu8+tVCKgpsd7gCFAxePykoe+Z2CW22kbV86c9bfbMEc1r9Mg5Lo9UtDGR BafO2OGTbvvlNGsPEN0Wg5P+FmN5OIEtLkRyIBYmnd/sGd+vbMTLM19tYLjOqsJX+BYZ PzKA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:user-agent:message-id :in-reply-to:date:references:subject:cc:to:from:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=mBqubKGiT+Q6fQ0DUJzmiyjTdF/2t3hzfheKfffxhy4=; b=v9IieGyE+U+LvsLN8pToEqh8hTdobYDy4RjTdAz5gXaYtR+VkENKeD8tMu9FZs4rfZ AfdoxUsacUXYbdUJOQ5Yw81Hp+aVTIdqvEpppsF2aaeXnBLe9QEcr4IsHQJDVu6cq2ea fUwZIoCaJ1itlxXINP5adWgjLz9B3BJ+x9GnqNwnKIAI3kKDLN/PWf8XE7MoF9obZNaJ ZBRgz3+tysYTE2IcMCTknx9ULxcX0ManZSvC/Uf9ECfTX2Ua407dppc5u+0FC/2uGKXJ y5u7bGDFaJpw2NT3SleXAzmFlQdCiAtSPTpng8CyoAUYyGVG+LVdRQo4jevMdNQ6cksp ourQ== X-Gm-Message-State: ANoB5pmQc43nhdXzvpOJurAX4ZCiur6SWikQmZUVeh9MwPF276VyeP46 ZvKN2Ywr9MgdXv1VihTdsBpsraNIP78= X-Google-Smtp-Source: AA0mqf6BfpdPOJMc9JRSi0JpEMdm90g5mBluiNqeEjZVauzAga0GHn3B7cNMOHMYk9PZ37LVUY5Okg== X-Received: by 2002:a05:620a:a1d:b0:6fa:3477:d62f with SMTP id i29-20020a05620a0a1d00b006fa3477d62fmr22761177qka.279.1669518978928; Sat, 26 Nov 2022 19:16:18 -0800 (PST) Received: from hurd (dsl-151-252.b2b2c.ca. [66.158.151.252]) by smtp.gmail.com with ESMTPSA id s10-20020a05620a16aa00b006ea7f9d8644sm5548681qkj.96.2022.11.26.19.16.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 26 Nov 2022 19:16:18 -0800 (PST) From: Maxim Cournoyer To: Ludovic =?utf-8?Q?Court=C3=A8s?= Cc: zimoun , guix-devel Subject: Re: Guile debugger workgroup? References: <20221027035100.28852-1-maxim.cournoyer@gmail.com> <20221027035100.28852-3-maxim.cournoyer@gmail.com> <87leojon1z.fsf_-_@gnu.org> <877d03xywl.fsf@gmail.com> <87sfihfpng.fsf_-_@gnu.org> <86zgcpju9p.fsf@gmail.com> <87y1s82o23.fsf@gmail.com> <87zgckwdtw.fsf@gmail.com> <87sficqb71.fsf@gmail.com> <86fsebdpl9.fsf@gmail.com> <87r0xrjbx1.fsf_-_@gmail.com> <87fse69czr.fsf@gnu.org> Date: Sat, 26 Nov 2022 22:16:17 -0500 In-Reply-To: <87fse69czr.fsf@gnu.org> ("Ludovic =?utf-8?Q?Court=C3=A8s=22'?= =?utf-8?Q?s?= message of "Sat, 26 Nov 2022 12:22:32 +0100") Message-ID: <87edtpw0hq.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Received-SPF: pass client-ip=2607:f8b0:4864:20::72e; envelope-from=maxim.cournoyer@gmail.com; helo=mail-qk1-x72e.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: guix-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+larch=yhetil.org@gnu.org Sender: guix-devel-bounces+larch=yhetil.org@gnu.org X-Migadu-Flow: FLOW_IN X-Migadu-Country: US ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1669519027; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post:dkim-signature; bh=mBqubKGiT+Q6fQ0DUJzmiyjTdF/2t3hzfheKfffxhy4=; b=vBPGrLrAjeIVsUEU9O8efZCk99RbvJQMHCB6UKf3MPp3+YmlmZtTFQAlTBInN6lew9fCqx ED7fUWS707o1q0zyfFnKSJ2It5+WHz/eHmh86tKEGNKHtP/ev8YxnD7NHshqd65kffKGI/ BSV9sTNtVHSMuUS1mWqGFIebLNkPxMHzxH5WBQuqfu7hnjBre32ggGhNunO0Ytk9yJLP02 LB7jQmJU/Ov2e+mlEeaSfCRke2o/I79Ip1IGz+BlxMNNJqTF+jNE/LjxSnljERu8nWtKZF aFOvEv7JuLasmdPbjUKxxjXLcdScvNJPEZgtY3OrY8eRm8nRQ2CNw8tpOu2NEg== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1669519027; a=rsa-sha256; cv=none; b=hC72RLgw/NUhXvt1VV5bo7KffwfaEIoSZ4kdvwIlH5c70D90m9n4n4fNViwhpYIHwxmDzj +XyI6mKT2ic44ovZCy5vz9oMQNjKgotX3xGvFffisTZD8PsOJzJDD7qB6zhbE3Fbx/CyM6 4Zu+mBvUg0WNd6AYiIR/t37ckIwpTM0P1i0z86zO82e3sJxha1TieXMUzQiaPx+T4beCgV tJORrNTwiwQTqqC4a/UsBkJtf+gXbqkR7qoKnjDVBRZ1FhyZDnkG+/UzU6GvNJaitFiZRf Of/jh/m3d6AJyXJ3rD4iU/QcsSkAf2WUwBIEJsAbUxDIxRlPSg6vVKoj3RuqCg== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=nJuHQ2Rp; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (aspmx1.migadu.com: domain of "guix-devel-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-devel-bounces+larch=yhetil.org@gnu.org" X-Migadu-Spam-Score: -2.96 Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=nJuHQ2Rp; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (aspmx1.migadu.com: domain of "guix-devel-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-devel-bounces+larch=yhetil.org@gnu.org" X-Migadu-Queue-Id: 175A5FEB0 X-Spam-Score: -2.96 X-Migadu-Scanner: scn1.migadu.com X-TUID: 0q2/xEg1L4+i Hi Ludovic, Ludovic Court=C3=A8s writes: > Hi, > > Maxim Cournoyer skribis: > >> I also agree! It's hard to convince people to pick Guile for their >> project when there is: >> >> 1. Lack of a debugger that can break and step anywhere in your source >> code >> 2. Lack of debugger integration to an IDE (it's not even integrated into >> Emacs) > > Well, Guile has a debugger that lets you do that (modulo inlining etc., > as with any other compiler), and Geiser is not Visual Studio=E2=84=A2 but= it > does a good job. I'll try to get more concrete with actual scenarios, but for now it's just a feeling that "it rarely works", e.g. break points don't stop or the code stepped is hardly recognizable. Perhaps Guile aggressively inline things or macros add to the confusion, but that shouldn't be a price the user has to pay for. One of Guile's strong points is supposed to be that it's geared for interactive programming, and I'd categorize stepping code being related to the programming experience being "interactive". > Also, I think I mentioned before that I almost never use breakpoints on > Guile code=E2=80=94not because of some deficiency of the debugger, not (j= ust) > because I=E2=80=99m silly or inexperienced, but because it=E2=80=99s rare= ly the right > tool for the job. > > I believe this is largely due to (1) writing functional code, and (2) > doing live programming at the REPL. Why would you use breakpoints when > you can just call the relevant procedures on some input to see how they > behave? And I've probably countered that before by saying that while it's true that functional programming helps, there are still times where the inputs or the lexical environment I need to understand are complex enough that reproducing them at the global level (REPL) is a pain. Just breaking at the right place and typing ,locals would be a much more efficient way to proceed to see what the environment in scope looks like. > So I think you won=E2=80=99t convince people to pick Guile for their proj= ect by > selling it as a C/C++/Python drop-in replacement. Guile is about > functional programming and live coding so the set of tools differs. Debugging/live coding abilities do not have to be mutually exclusive. Python excels at both, in my experience. >> Perhaps we should assemble a Guile debugger workgroup that'd review >> what's broken, what's missing, what can be borrowed from other Scheme or >> languages for inspiration, and hopefully improve the Guile debugging >> experience? :-) > > Despite what I wrote, I think it=E2=80=99s a good idea. I suppose inspir= ation > would come from other Schemes, in particular Racket, and perhaps from > other live-coding systems (Common Lisp, Smalltalk, etc.), rather than > from Python or C. Great! --=20 Thanks, Maxim