From owner-freebsd-arch@freebsd.org Thu Feb 1 05:03:04 2018 Return-Path: Delivered-To: freebsd-arch@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A71EAF0D6D2 for ; Thu, 1 Feb 2018 05:03:04 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: from mail-io0-x233.google.com (mail-io0-x233.google.com [IPv6:2607:f8b0:4001:c06::233]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 453D36AEC4 for ; Thu, 1 Feb 2018 05:03:04 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: by mail-io0-x233.google.com with SMTP id l17so17754631ioc.3 for ; Wed, 31 Jan 2018 21:03:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20150623.gappssmtp.com; s=20150623; h=mime-version:sender:from:date:message-id:subject:to; bh=b/bydFN3wyvcQ7lAjag9ZPrGISpWWhyszY3Ly5ZeOJ8=; b=XJ1CGuWIbuyz+igEcFeBqQgUNgE+SYNOySpgRqemXKH2Zyg5aNPSEMn0fbtiK/gQD5 sOedLvX3yqt/WkofmKoftZn3MpnaH9NtK2sSadg8IcqXkZgvJcijxSFI3WZb7fC4QePP i7JhdmDWHWDIJo1SqD0Ru69dml+VxGkfVnUVtGtSmHJqKHbSZL6UQL/DHUezD0C53iYK zj+KvPYlEd10j7qo1zkYEmZRCYC852dF/BCkiZXO6XBMB30XlYU13PxlOJv9rzq3u51O ZOj/odWVWSdWqxaXA4tN4ZqnqdKE4N5uABeAd1aAxloT6CEsJaXUiHwiMpaK/4xRuuAm neaA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:sender:from:date:message-id:subject :to; bh=b/bydFN3wyvcQ7lAjag9ZPrGISpWWhyszY3Ly5ZeOJ8=; b=pOwX0N/W61A4UouX2SNPMHJMi4U+AF2OK4AeKz9u2yNFaNwn6Ii88IjOZSfezqFSR0 mPR5X4jQiQ5B2yzALXZvsEAPyLpjXUQDdPdIdfnmqg8vEsDteHYivWBJrVg6QU9KP3RL 0f5LMe8hQRrrBWCMxtABkfDeS3jatsnHKVhEnoVr1WmHpdqV0m5+saKi58rVfZu7YJ+l jbj+BOURaJH31GDVRD3/msWgZZSwzuadDx4FXlsXXqrv8x7u4Bd1JxFHHaVvJJwSPPhN xl6KGBMiICFrvT93obhVLDf0BGf/EKigcSwslq605Kpg7NoOjttk5j4sG8GrRd55TnWR 54jg== X-Gm-Message-State: AKwxyteZisb8psSJwTq+9euhHTqISr0BtRpie0o6b342kx3yXET1nJYq YmWl/kErmM7We7xFopSLeDePG9D+6S/MvVg0R4S4TA== X-Google-Smtp-Source: AH8x224N74r8U/eKgrOPIjvkNnEN1zBik1pgnp7hBmr8g/pwyyrZ1hg3FXIGF5FSer5RwcxfKYhLfb2YFa2eyhCIzsk= X-Received: by 10.107.107.1 with SMTP id g1mr35963389ioc.63.1517461383111; Wed, 31 Jan 2018 21:03:03 -0800 (PST) MIME-Version: 1.0 Sender: wlosh@bsdimp.com Received: by 10.79.201.67 with HTTP; Wed, 31 Jan 2018 21:03:02 -0800 (PST) X-Originating-IP: [2603:300b:6:5100:18a2:a4f7:170:8dd9] From: Warner Losh Date: Wed, 31 Jan 2018 22:03:02 -0700 X-Google-Sender-Auth: IoKmsMIjUdwlWEgq1QJbiIwUbN4 Message-ID: Subject: Feedback on proposed loader changes To: "freebsd-arch@freebsd.org" Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.25 X-BeenThere: freebsd-arch@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: Discussion related to FreeBSD architecture List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Feb 2018 05:03:04 -0000 Greetings, As you may have read or guessed, I'm nearing the end game on integrating lua into the boot loader from the GSoC a few years ago. I've tried to resolve all the issues it brought up in libsa and other structural changes. This has allowed lua to be imported unmodified, for example. I've been trying to figure out how to handle the transition from forth to lua and find myself with a few decisions that I should seek feedback on since I'm at a crossroads. The first one is that we have two sets of 4th words, both of which I wrote, that don't fit neatly into the current build system. We have a bit of a hack in place for both the pcibios-* and efi-* functions in 4th. The former was something I did as a hack for Netflix that I judged at the time to be more useful than it turned out to be (as far as I've been able to tell). The latter turns out to be a road not taken (I'd planned originally on implementing UEFI boot manager with 4th, but that turns out to be not desirable even if 4th might be out the door). My plan is to simply retire this stuff, along with pnp.4th which we've never installed. If I do this, then I can build everything in the tree w/o regard to whether FORTH is on or off, which dove tails nicely to my next question... If no .o depends on the interpreter we're using (other than the ones that implement the interpreter), then there'd be no technical barrier to building multiple interpreters. So, I'd like to change to building both the loader with forth and the one without, as well as installing both (as loader_simple and loader_forth) with a symlink to the default. This would allow people to switch, as well as provide a fallback for most systems (uboot on FAT would be trickier, but we don't directly install those from installworld, EFI on FAT would be as well, but there it will matter much less shortly). This would allow me to roll out loader_lua when it's ready and have it installed everywhere for people that want to take the plunge and switch it when the time is ripe. This path would also leave the old boot loaders around for people to interrupt boot1 with (EFI is another matter, but I'm hoping efibootmgr wills solve that ball of wax). So I'd like feedback on two questions: Should I kill the forth features I oulined above? And should I make the build system build multiple loaders with a link controlling the default? Comments? Warner