From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.0 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id E9DDDC07E96 for ; Thu, 8 Jul 2021 17:01:09 +0000 (UTC) Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id CC5C161625 for ; Thu, 8 Jul 2021 17:01:08 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org CC5C161625 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=denx.de Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 4A750831A5; Thu, 8 Jul 2021 19:01:06 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=denx.de Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=denx.de; s=phobos-20191101; t=1625763666; bh=efxVXIM3hjPdr6yf+w9YIF+9XW6FgGasASiyveN9GSw=; h=To:cc:From:Subject:In-reply-to:References:Date:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From; b=TWV9p10fXyzTarKYIYCwkrTkmYl8uZ3Qd4aefNdq+NeHcdkfx1Uspb5R6mhVceSU6 8vB+9dM+FDHYvJ26imNh/0w4L6hqPGGnf7GF6SiSkjCBSjIO9ygTV/s4E+Dboe2FKU 6w9jE5ybuCTQGIlB2WMlD73T79I++pLX4k80zfmSs+zeezW462NvnXN+1gqecIYaYE EIkj0X40cn50ymfbxMF47QKrtrp2/gJOoCWExiaf3PbaVnb/XHjx3+uDon3AsRkGUn sUYuNth/Tgo13Ovz97+TIklAbBWEKgmqMf0Knr4vfGLJ0siUpSeRQiTCoNljJVjI39 qpxuD9nsZsJfA== Received: from janitor.denx.de (unknown [62.91.23.180]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (No client certificate requested) (Authenticated sender: noc@denx.de) by phobos.denx.de (Postfix) with ESMTPSA id E9ECB83190 for ; Thu, 8 Jul 2021 19:01:04 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=denx.de; s=phobos-20191101; t=1625763665; bh=efxVXIM3hjPdr6yf+w9YIF+9XW6FgGasASiyveN9GSw=; h=To:cc:From:Subject:In-reply-to:References:Date:From; b=s8pD6JEtIxObMDSPwd3eIv+30zOwiMKvyDOUTwshtcs2+xwfrI73W//p3HSZV/D/Q sFP7tppCqUqZSv5hwnmWDHc3Ei3cZLcixMh3L7+C//Qk+BUsMW33EPo249JY9Vem+g YojfbYsHmHlYgZhZEPet9Z+rhXBXpabrQW+K8AiFndquacxQC4SBX14BlL3ZUuIPa0 TPs3baJ+b1zCUmdgbhPBFWN3c9jJxJUFwBv93bsy+sn+ag4SvOU5+MgpFAg8U9md0V Jojf/omhZQ7pkNX4NIy84IeefArjNRUtJnG7HtVhRyX8Q0//LGNOXYaIOnjWXTh/H1 XhaOf4js/4MSw== Received: by janitor.denx.de (Postfix, from userid 108) id 5B1DEA020E; Thu, 8 Jul 2021 19:01:04 +0200 (CEST) Received: from gemini.denx.de (gemini.denx.de [10.4.0.2]) by janitor.denx.de (Postfix) with ESMTPS id 670CAA003B; Thu, 8 Jul 2021 19:00:53 +0200 (CEST) Received: from gemini.denx.de (localhost [IPv6:::1]) by gemini.denx.de (Postfix) with ESMTP id 205871E14C2; Thu, 8 Jul 2021 19:00:53 +0200 (CEST) To: Sean Anderson cc: Tom Rini , u-boot@lists.denx.de, =?UTF-8?Q?Marek_Beh=c3=ban?= , Simon Glass , Roland Gaudig , Heinrich Schuchardt , Kostas Michalopoulos From: Wolfgang Denk Subject: Re: [RFC PATCH 02/28] cli: Add LIL shell MIME-Version: 1.0 Content-type: text/plain; charset=UTF-8 Content-transfer-encoding: 8bit In-reply-to: <43880bf0-baa6-0cb2-80fe-0fe50d43b42f@gmail.com> References: <20210701061611.957918-1-seanga2@gmail.com> <20210701061611.957918-3-seanga2@gmail.com> <126700.1625223815@gemini.denx.de> <8bbdb7a1-5085-a3b7-614f-12ae9aee8e8b@gmail.com> <18831.1625340810@gemini.denx.de> <20210705191058.GB9516@bill-the-cat> <192103.1625557460@gemini.denx.de> <43880bf0-baa6-0cb2-80fe-0fe50d43b42f@gmail.com> Comments: In-reply-to Sean Anderson message dated "Thu, 08 Jul 2021 00:56:50 -0400." Date: Thu, 08 Jul 2021 19:00:53 +0200 Message-ID: <134624.1625763653@gemini.denx.de> X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.34 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.2 at phobos.denx.de X-Virus-Status: Clean Dear Sean, In message <43880bf0-baa6-0cb2-80fe-0fe50d43b42f@gmail.com> you wrote: > > > Tcl is a horror of a language for anything that is above trivial > > level. > > Can you please elaborate on this? You've made this claim several times, > but haven't explained your reasoning for it. A long, long time ago I I was looking for an efficient way to do regression testing for embedded systems, mainly U-Boot and Linux. I found GNU gnats to bee too difficult to handle und started writing my own test system (you can still find this ancient stuff here [1]) based on expect/Tcl. At that time, I could not find any other solution, so I had to accept Tcl as programming language for this tool. And at the beginning it usually worked just fine. Mostly. Coming from a C programming environment I always found Tcl ... strange. For example it's scoping rules (see [2] for an example). Things got worse when the system grew and we had to deal with strings or parameters which might contail quotes or other special characters. This required fancy quoting, which depended of the calling depth - if there was only on specific level. you might find a solution after some (cumbersome) experimenting. But if the same string was used in several places in the code, and different levels, you really lost. At a certain point all our developers refused to write new test cases for the system, because it always was the same nightmare of fighting unforeseeable language problems. That was when we abandoned DUTS, and some time later Heiko came up with an initial implementation of tbot, soon to be joined by Harald to make a production quality test system out of it [4]. IMO, Tcl has a large number of situations where it's actual behaviours is not what you expect from it - it is good enough for simple things, but any more complex processing of arbitrary text data quickly drives you insane - things like quotes or braces and other special characters. [1] http://www.denx.de/wiki/DUTS/DUTSDocs [2] https://wiki.tcl-lang.org/page/Commonly+encountered+problems+in+Tcl [3] https://wiki.tcl-lang.org/page/Why+can+I+not+place+unmatched+braces+in+Tcl+comments [4] https://tbot.tools/ Best regards, Wolfgang Denk -- DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd@denx.de The number you have dialed is imaginary. Please divide by 0 and try again.