From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Stephen Scheck Newsgroups: gmane.lisp.guile.user Subject: Re: Multi-language scripts Date: Sat, 22 Aug 2020 10:53:50 -0400 Message-ID: <135D6304-61E4-4826-81BE-4C93257A1F6F@gmail.com> Mime-Version: 1.0 (Mac OS X Mail 13.4 \(3608.120.23.2.1\)) Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="29008"; mail-complaints-to="usenet@ciao.gmane.io" Cc: guile-user@gnu.org To: matt.wette@gmail.com Original-X-From: guile-user-bounces+guile-user=m.gmane-mx.org@gnu.org Sat Aug 22 16:54:11 2020 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 1k9UuJ-0007SV-A1 for guile-user@m.gmane-mx.org; Sat, 22 Aug 2020 16:54:11 +0200 Original-Received: from localhost ([::1]:50148 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1k9UuI-0000kg-5j for guile-user@m.gmane-mx.org; Sat, 22 Aug 2020 10:54:10 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:34310) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1k9Uu8-0000kU-Cd for guile-user@gnu.org; Sat, 22 Aug 2020 10:54:00 -0400 Original-Received: from mail-qt1-x831.google.com ([2607:f8b0:4864:20::831]:32780) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1k9Uu1-0005kt-HB for guile-user@gnu.org; Sat, 22 Aug 2020 10:54:00 -0400 Original-Received: by mail-qt1-x831.google.com with SMTP id 6so3304349qtt.0 for ; Sat, 22 Aug 2020 07:53:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:content-transfer-encoding:mime-version:subject:message-id:date :cc:to; bh=NBezjoVXUkTlHNlkyb5gOqGSfl63raA1Qtn7SU0JTjU=; b=MaXMYC5fbqJt3GanactkW8qebifxGx2NtYXSYFaEmghX0MT3LUdTVCBgFOSAXSn4Tv 7Jmq1GXdYtxamup+yizDFH79AyA6dKjJID+mz1cu8MDoNCBLWB9W1tyyJbElVN2TVEXc PH/L1lWGyQM3rUZz6PQfZPubzcQFzEsQKJPuYuOiYnzFM3ygg6DiqjchIm03JSelD7+d mRNb900kXHlpaocxnu6Kw88VPVtJxM2SVk6QwJcyqEdmdGv5wMbntOQghyGibnPqVJz+ vkDBDDyLWTxOrPZ5gxHdVkary/j5/85U+HkxICnkZnhu+a8142sgyfedNgUruJDC984W LO9w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:content-transfer-encoding:mime-version :subject:message-id:date:cc:to; bh=NBezjoVXUkTlHNlkyb5gOqGSfl63raA1Qtn7SU0JTjU=; b=pPCMKhq+QqBLhdkkOdNA4/6CUduRtx0mEBJG31gmoElSNrYh3Y+14FNn38cV44Bww0 nJzjKgstQxf29WqyXYSIOwjCBSS30DO/N1JOjFnSTvAQVkFCFRpjW2lGKphjLI2qTUr0 Pzrp66nDXJrd0ZfieKPAFcSs3sqBdIdDoBaGQjY0eC/3ZRTUuCLMqk8o5Oh/w5MrcTcM CV+NH4C3n2OShMMsGu+HJznW9qS3zZK62oBWMs5y3PWh+hzooRIsGXpScXDOp/33SOOV 9D+chu/Nm7Z/0btF5LfWTMHBiihAMM7Onyo4LwuGMkhqWfJzRT2HEGPOdm8Jv+TJa7ib vIiA== X-Gm-Message-State: AOAM5319G2HJX+tpLFWhkzO1XKl1Qrx1l9KYrimNqEHYKt7eYd0NCw+R T12ujgD1jOPu+XR2O0x6Bjs= X-Google-Smtp-Source: ABdhPJx9GCVy9rWr8OZ3QuwRynmu/ezfA2MDmPAVkBU3nm7T91XUzzOQWgFw/N7LSHaR8S0ZiShltw== X-Received: by 2002:ac8:73d1:: with SMTP id v17mr7055378qtp.51.1598108031985; Sat, 22 Aug 2020 07:53:51 -0700 (PDT) Original-Received: from [192.168.1.129] ([198.135.148.184]) by smtp.gmail.com with ESMTPSA id i18sm5495031qtv.39.2020.08.22.07.53.50 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sat, 22 Aug 2020 07:53:51 -0700 (PDT) X-Mailer: Apple Mail (2.3608.120.23.2.1) Received-SPF: pass client-ip=2607:f8b0:4864:20::831; envelope-from=singularsyntax@gmail.com; helo=mail-qt1-x831.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. 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.23 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" Xref: news.gmane.io gmane.lisp.guile.user:16824 Archived-At: Matt Wette wrote: > maybe this? > > (use-modules (system base language)) > (current-language (lookup-language 'ecmascript)) It doesn=E2=80=99t work: scheme@(guile-user)> (use-modules (system base language)) scheme@(guile-user)> (lookup-language =E2=80=98ecmascript) $1 =3D #< name: ecmascript title: ECMAScript reader: = # printer: # parser: #f compilers: = ((tree-il . #)) decompilers: = () evaluator: #f joiner: #f for-humans?: #t make-default-environment: = #> scheme@(guile-user)> (current-language $1) $2 =3D scheme scheme@(guile-user)> display("We should be in JavaScript now, but we = aren=E2=80=99t!\n=E2=80=9D); $3 =3D # ERROR: Wrong type to apply: "We should be in JavaScript now, but we = aren=E2=80=99t!\n=E2=80=9D =20 Entering a new prompt. Type `,bt' for a backtrace or `,q' to = continue. Also, even if it did, it would be problematic switching back - you=E2=80=99= d need to do something along these lines in Scheme first: (define (string_to_symbol sym) (string->symbol sym)) (define (lookup_language lang) (lookup-language lang)) (define (set_current_language lang) (set-current-language! lang)) ;; = assuming set-current-language! actually existed=E2=80=A6 This wouldn=E2=80=99t work, obviously, in the general case for other = languages. I don=E2=80=99t really want to use JavaScript, I was just = using it as an example. I really just want some way to enable the REPL reader when you pass a = script to Guile with the -s switch from the command line so you can = embed `,language` meta-commands in the script file.