From owner-soc-status@freebsd.org Fri Aug 28 18:21:10 2015 Return-Path: Delivered-To: soc-status@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9F9969C53A3 for ; Fri, 28 Aug 2015 18:21:10 +0000 (UTC) (envelope-from cdlord2@illinois.edu) Received: from mail-ig0-f170.google.com (mail-ig0-f170.google.com [209.85.213.170]) (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 743BFCAE for ; Fri, 28 Aug 2015 18:21:09 +0000 (UTC) (envelope-from cdlord2@illinois.edu) Received: by igyq3 with SMTP id q3so18511838igy.1 for ; Fri, 28 Aug 2015 11:21:09 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:message-id:date:from:user-agent:mime-version:to :subject:content-type:content-transfer-encoding; bh=mGhoBRYk9lzSpYAt8eqlmIUbGK4eVaf9zER22VHRsfw=; b=Rwh4BpyeUVdIrjmWr5J1S6KeoHFC/hyCKcuENhVM/HI3h383N8qG+pw73OIBYmEz1X ZQgxTiMWWtpfH+Hf27LV+qwiKh2zPDU2DFlzbg/nNzx2VL09iKslKKmLbfBamia9Kfrm jz9v6KJB1l4daUEoqyoC64TdFOlF3w5lSVFwNoh6oL/6eTlzPYrPOdA03y3luKgmZplr OKBEZwpRuBFwwMwpZXUjPXcPuuZXHLPPsWhEksVu6OPkGrZAgKiY5Mc43nmvjSGGqSaM SVRacEM5Wz3EPW3doJjvcqaMCso3lDhFQxW9mOxuyTLpdhBaPpFjXNgy1Gpq3Xg5zBin obDA== X-Gm-Message-State: ALoCoQnsEw3bMgZFDE8ycIKGdjjUp3lHIadGdoAfHNZg+PYBZXUV6OffmDvDLXSZy989brvwm7n3 X-Received: by 10.50.98.1 with SMTP id ee1mr4806173igb.3.1440786069139; Fri, 28 Aug 2015 11:21:09 -0700 (PDT) Received: from [172.17.166.170] (mobile-130-126-255-161.near.illinois.edu. [130.126.255.161]) by smtp.gmail.com with ESMTPSA id 20sm4739004iof.18.2015.08.28.11.21.07 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 28 Aug 2015 11:21:08 -0700 (PDT) Message-ID: <55E0A68B.2090606@illinois.edu> Date: Fri, 28 Aug 2015 13:20:59 -0500 From: "Colin D. Lord" User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.7.0 MIME-Version: 1.0 To: soc-status@FreeBSD.org Subject: Update Ficl in Bootloader - Final Status Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: soc-status@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Summer of Code Status Reports and Discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 28 Aug 2015 18:21:10 -0000 Hi everyone, Here's the current status of my project to update the Ficl version in the bootloader. When the summer began, I had two main goals for this project. The first was to get a working implementation of the bootloader running Ficl 4 in "compatibility mode", which would allow the FreeBSD Ficl customizations to carry over to Ficl 4, ideally without too much modification. The second goal was to remove the compatibility mode setting, which would require all of the FreeBSD customizations to be remade to use the Ficl 4 api. Turning off compatibility mode would offer the benefits of cleaner code and ease of future maintenance and understandability. I had initially expected to get a working bootloader by the middle of the summer. However, I hit many roadblocks and that timeline did not end up working out. While the bootloader currently builds, due to a bug related to the Ficl stack, it does not get very far through the boot process. So currently the Ficl 4 userland interpreter can be built and used, and the bootloader should build, but until the bug in Ficl is fixed, it will not run correctly. I expect the bootloader to work once that bug is fixed though. I put a few days of dedicated effort into finding the bug, but was unsuccessful in fixing it before time ran out. In a little more detail, the bug in the Ficl stack was that the stack simply did not grow, ie pushing an element, and then viewing the contents of the stack, resulted in the Ficl interpreter saying it had no items on the stack. While debugging, it appeared to me that while one item could be inserted, when accessing the item the pointer to the top of the stack would for some reason be reset to its initial value, making it appear as though the stack was empty. This bug also appears in the ports version of Ficl 4 (lang/ficl, port version 4.1.0_2), which is why we believe it is a bug in Ficl and not a result of a mistake while importing Ficl. The next steps therefore consist of fixing the Ficl stack to get a functioning loader, and then removing compatibility mode can be a consideration. Many thanks to Devin for helping me when I got stuck and providing guidance about all my questions, and also to Pedro for dropping in every once in a while to check on me. Colin