GHC User's Guide Documentation

Total Page:16

File Type:pdf, Size:1020Kb

GHC User's Guide Documentation GHC User’s Guide Documentation Release 8.8.0.20190721 GHC Team Jul 22, 2019 CONTENTS 1 The Glasgow Haskell Compiler License 3 2 Introduction to GHC 5 2.1 Obtaining GHC ........................................ 5 2.2 Meta-information: Web sites, mailing lists, etc. .................... 5 2.3 Reporting bugs in GHC ................................... 6 2.4 GHC version numbering policy .............................. 6 3 Release notes for version 8.8.1 9 3.1 Highlights ........................................... 9 3.2 Full details ........................................... 9 3.2.1 Language ....................................... 9 3.2.2 Compiler ........................................ 10 3.2.3 LLVM backend .................................... 11 3.2.4 Runtime system ................................... 11 3.2.5 Template Haskell .................................. 11 3.2.6 ghc-prim library ................................... 12 3.2.7 ghc library ...................................... 12 3.2.8 base library ...................................... 12 3.2.9 Build system ..................................... 12 3.3 Included libraries ...................................... 12 4 Using GHCi 15 4.1 Introduction to GHCi .................................... 15 4.2 Loading source files ..................................... 16 4.2.1 Modules vs. filenames ............................... 17 4.2.2 Making changes and recompilation ....................... 17 4.3 Loading compiled code ................................... 17 4.4 Interactive evaluation at the prompt ........................... 19 4.4.1 I/O actions at the prompt .............................. 20 4.4.2 Using do notation at the prompt ......................... 20 4.4.3 Multiline input .................................... 22 4.4.4 Type, class and other declarations ........................ 23 4.4.5 What’s really in scope at the prompt? ...................... 24 The effect of :load on what is in scope ...................... 25 Controlling what is in scope with import ..................... 25 Controlling what is in scope with the :module command ........... 26 Qualified names .................................... 26 :module and :load .................................. 27 4.4.6 The :main and :run commands .......................... 27 4.4.7 The it variable .................................... 28 i 4.4.8 Type defaulting in GHCi .............................. 28 Interactive classes .................................. 30 Extended rules around default declarations .................. 30 4.4.9 Using a custom interactive printing function .................. 30 4.4.10 Stack Traces in GHCi ................................ 31 4.5 The GHCi Debugger ..................................... 32 4.5.1 Breakpoints and inspecting variables ...................... 32 Setting breakpoints .................................. 35 Listing and deleting breakpoints .......................... 35 4.5.2 Single-stepping .................................... 36 4.5.3 Nested breakpoints ................................. 36 4.5.4 The _result variable ................................ 37 4.5.5 Tracing and history ................................. 37 4.5.6 Debugging exceptions ............................... 39 4.5.7 Example: inspecting functions .......................... 40 4.5.8 Limitations ...................................... 41 4.6 Invoking GHCi ........................................ 41 4.6.1 Packages ....................................... 42 4.6.2 Extra libraries .................................... 42 4.7 GHCi commands ....................................... 43 4.8 The :set and :seti commands .............................. 53 4.8.1 GHCi options ..................................... 53 4.8.2 Setting GHC command-line options in GHCi .................. 54 4.8.3 Setting options for interactive evaluation only ................. 54 4.9 The .ghci and .haskeline files .............................. 55 4.9.1 The .ghci files .................................... 55 4.9.2 The .haskeline file ................................. 57 4.10 Compiling to object code inside GHCi .......................... 57 4.11 Running the interpreter in a separate process ..................... 57 4.12 FAQ and Things To Watch Out For ............................ 58 5 Using runghc 59 5.1 Usage .............................................. 59 5.2 runghc flags .......................................... 59 5.3 GHC Flags ........................................... 59 6 Using GHC 61 6.1 Using GHC ........................................... 61 6.1.1 Getting started: compiling programs ...................... 61 6.1.2 Options overview .................................. 62 Command-line arguments .............................. 62 Command line options in source files ....................... 62 Setting options in GHCi ............................... 63 6.1.3 Dynamic and Mode options ............................ 63 6.1.4 Meaningful file suffixes ............................... 63 6.1.5 Modes of operation ................................. 64 Using ghc --make ................................... 65 Expression evaluation mode ............................ 66 Batch compiler mode ................................. 66 6.1.6 Verbosity options .................................. 67 6.1.7 Platform-specific Flags ............................... 72 6.1.8 Miscellaneous flags ................................. 72 6.2 Warnings and sanity-checking ............................... 73 6.3 Optimisation (code improvement) ............................. 88 ii 6.3.1 -O*: convenient “packages” of optimisation flags. .............. 89 6.3.2 -f*: platform-independent flags ......................... 89 6.4 Using Concurrent Haskell ................................. 100 6.5 Using SMP parallelism ................................... 101 6.5.1 Compile-time options for SMP parallelism ................... 101 6.5.2 RTS options for SMP parallelism ......................... 102 6.5.3 Hints for using SMP parallelism ......................... 103 6.6 Flag reference ........................................ 103 6.6.1 Verbosity options .................................. 103 6.6.2 Alternative modes of operation .......................... 106 6.6.3 Which phases to run ................................ 107 6.6.4 Redirecting output ................................. 107 6.6.5 Keeping intermediate files ............................. 108 6.6.6 Temporary files .................................... 109 6.6.7 Finding imports ................................... 109 6.6.8 Interface file options ................................ 109 6.6.9 Recompilation checking .............................. 109 6.6.10 Interactive-mode options .............................. 110 6.6.11 Packages ....................................... 111 6.6.12 Language options .................................. 112 6.6.13 Warnings ....................................... 112 6.6.14 Optimisation levels ................................. 119 6.6.15 Individual optimisations .............................. 119 6.6.16 Profiling options ................................... 125 6.6.17 Program coverage options ............................. 125 6.6.18 C pre-processor options .............................. 126 6.6.19 Code generation options .............................. 126 6.6.20 Linking options .................................... 127 6.6.21 Plugin options .................................... 129 6.6.22 Replacing phases .................................. 129 6.6.23 Forcing options to particular phases ....................... 130 6.6.24 Platform-specific options .............................. 130 6.6.25 Compiler debugging options ............................ 130 6.6.26 Miscellaneous compiler options .......................... 135 6.7 Running a compiled program ............................... 135 6.7.1 Setting RTS options ................................. 135 Setting RTS options on the command line .................... 136 Setting RTS options at compile time ........................ 136 Setting RTS options with the GHCRTS environment variable .......... 137 “Hooks” to change RTS behaviour ......................... 137 6.7.2 Miscellaneous RTS options ............................ 138 6.7.3 RTS options to control the garbage collector .................. 139 6.7.4 RTS options to produce runtime statistics ................... 145 6.7.5 RTS options for concurrency and parallelism ................. 147 6.7.6 RTS options for profiling .............................. 148 6.7.7 Tracing ........................................ 148 6.7.8 RTS options for hackers, debuggers, and over-interested souls ...... 149 6.7.9 Getting information about the RTS ........................ 151 6.8 Filenames and separate compilation ........................... 152 6.8.1 Haskell source files ................................. 152 6.8.2 Output files ...................................... 152 6.8.3 The search path ................................... 153 6.8.4 Redirecting the compilation output(s) ...................... 154 6.8.5 Keeping Intermediate Files ............................ 156 iii 6.8.6 Redirecting temporary files ............................ 156 6.8.7 Other options related to interface files ..................... 156 6.8.8 Options related to extended interface files ................... 157 6.8.9 The recompilation checker ............................. 157 6.8.10 How to compile mutually recursive modules .................. 158 6.8.11 Module signatures .................................. 160 6.8.12 Using make .....................................
Recommended publications
  • Asmc Macro Assembler Reference Asmc Macro Assembler Reference
    Asmc Macro Assembler Reference Asmc Macro Assembler Reference This document lists some of the differences between Asmc, JWasm, and Masm. In This Section Asmc Command-Line Option Describes the Asmc command-line option. Asmc Error Messages Describes Asmc fatal and nonfatal error messages and warnings. Asmc Extensions Provides links to topics discussing Masm versus Asmc. Directives Reference Provides links to topics discussing the use of directives in Asmc. Symbols Reference Provides links to topics discussing the use of symbols in Asmc. Change Log | Forum Asmc Macro Assembler Reference Asmc Command-Line Reference Assembles and links one or more assembly-language source files. The command-line options are case sensitive. ASMC [[options]] filename [[ [[options]] filename]] options The options listed in the following table. Set CPU: 0=8086 (default), 1=80186, 2=80286, 3=80386, 4=80486, /[0|1|..|10][p] 5=Pentium,6=PPro,7=P2,8=P3,9=P4,10=x86-64. [p] allows privileged instructions. /assert Generate .assert(code). Same as .assert:on. /bin Generate plain binary file. Push user registers before stack-frame is created in a /Cs proc. /coff Generate COFF format object file. /Cp Preserves case of all user identifiers. /Cu Maps all identifiers to upper case (default). Link switch used with /pe -- subsystem:console /cui (default). /Cx Preserves case in public and extern symbols. Defines a text macro with the given name. If value is /Dsymbol[[=value]] missing, it is blank. Multiple tokens separated by spaces must be enclosed in quotation marks. /enumber Set error limit number. /elf Generate 32-bit ELF object file. /elf64 Generate 64-bit ELF object file.
    [Show full text]
  • Linux Assembly HOWTO Linux Assembly HOWTO
    Linux Assembly HOWTO Linux Assembly HOWTO Table of Contents Linux Assembly HOWTO..................................................................................................................................1 Konstantin Boldyshev and François−René Rideau................................................................................1 1.INTRODUCTION................................................................................................................................1 2.DO YOU NEED ASSEMBLY?...........................................................................................................1 3.ASSEMBLERS.....................................................................................................................................1 4.METAPROGRAMMING/MACROPROCESSING............................................................................2 5.CALLING CONVENTIONS................................................................................................................2 6.QUICK START....................................................................................................................................2 7.RESOURCES.......................................................................................................................................2 1. INTRODUCTION...............................................................................................................................2 1.1 Legal Blurb........................................................................................................................................2
    [Show full text]
  • Optimizing Subroutines in Assembly Language an Optimization Guide for X86 Platforms
    2. Optimizing subroutines in assembly language An optimization guide for x86 platforms By Agner Fog. Copenhagen University College of Engineering. Copyright © 1996 - 2012. Last updated 2012-02-29. Contents 1 Introduction ....................................................................................................................... 4 1.1 Reasons for using assembly code .............................................................................. 5 1.2 Reasons for not using assembly code ........................................................................ 5 1.3 Microprocessors covered by this manual .................................................................... 6 1.4 Operating systems covered by this manual................................................................. 7 2 Before you start................................................................................................................. 7 2.1 Things to decide before you start programming .......................................................... 7 2.2 Make a test strategy.................................................................................................... 9 2.3 Common coding pitfalls............................................................................................. 10 3 The basics of assembly coding........................................................................................ 12 3.1 Assemblers available ................................................................................................ 12 3.2 Register set
    [Show full text]
  • Different Emulators to Write 8086 Assembly Language Programs
    Different Emulators to write 8086 assembly language programs Subject: IWM Content • Emu8086 • TASM(Turbo Assembler) • MASM(Microsoft Macro Assembler) • NASM(Netwide Assembler) • FASM(Flat Assembler) Emu8086 • Emu8086 combines an advanced source editor, assembler, disassembler, software emulator with debugger, and step by step tutorials • It permit to assemble, emulate and debug 8086 programs. • This emulator was made for Windows, it works fine on GNU/Linux (with the help of Wine). • The source code is compiled by assembler and then executed on Emulator step-by-step, allowing to watch registers, flags and memory while program runs. how to run program on Emu8086 • Download Emu8086 through this link : https://download.cnet.com/Emu8086-Microprocessor- Emulator/3000-2069_4-10392690.html • Start Emu8086 by running Emu8086.exe • Select “Examples" from "File" menu. • Click “Emulate” button (or press F5). • Click “Single Step” button (or press F8) and watch how the code is being executed. Turbo Assembler(Tasm) • Turbo Assembler (TASM) is a computer assembler developed by Borland which runs on and produces code for 16- or 32-bit x86 DOS or Microsoft Windows. • The Turbo Assembler package is bundled with the Turbo Linker, and is interoperable with the Turbo Debugger. • Turbo Assembler (TASM) a small 16-bit computer program which enables us to write 16 bit i.e. x86 programming code on 32-bit machine. It can be used with any high level language compliers like GCC compiler set to build object files. So that programmers can use their daily routine machines to write 16-bit code and execute on x86 devices. how to run program using TASM • Download TASM through this link : https://techapple.net/2013/01/tasm-windows-7-windows-8-full- screen-64bit-version-single-installer/ • Start TASM by running tasm.exe • It will open DOSBOX.
    [Show full text]
  • Kafl: Hardware-Assisted Feedback Fuzzing for OS Kernels
    kAFL: Hardware-Assisted Feedback Fuzzing for OS Kernels Sergej Schumilo1, Cornelius Aschermann1, Robert Gawlik1, Sebastian Schinzel2, Thorsten Holz1 1Ruhr-Universität Bochum, 2Münster University of Applied Sciences Motivation IJG jpeg libjpeg-turbo libpng libtiff mozjpeg PHP Mozilla Firefox Internet Explorer PCRE sqlite OpenSSL LibreOffice poppler freetype GnuTLS GnuPG PuTTY ntpd nginx bash tcpdump JavaScriptCore pdfium ffmpeg libmatroska libarchive ImageMagick BIND QEMU lcms Adobe Flash Oracle BerkeleyDB Android libstagefright iOS ImageIO FLAC audio library libsndfile less lesspipe strings file dpkg rcs systemd-resolved libyaml Info-Zip unzip libtasn1OpenBSD pfctl NetBSD bpf man mandocIDA Pro clamav libxml2glibc clang llvmnasm ctags mutt procmail fontconfig pdksh Qt wavpack OpenSSH redis lua-cmsgpack taglib privoxy perl libxmp radare2 SleuthKit fwknop X.Org exifprobe jhead capnproto Xerces-C metacam djvulibre exiv Linux btrfs Knot DNS curl wpa_supplicant Apple Safari libde265 dnsmasq libbpg lame libwmf uudecode MuPDF imlib2 libraw libbson libsass yara W3C tidy- html5 VLC FreeBSD syscons John the Ripper screen tmux mosh UPX indent openjpeg MMIX OpenMPT rxvt dhcpcd Mozilla NSS Nettle mbed TLS Linux netlink Linux ext4 Linux xfs botan expat Adobe Reader libav libical OpenBSD kernel collectd libidn MatrixSSL jasperMaraDNS w3m Xen OpenH232 irssi cmark OpenCV Malheur gstreamer Tor gdk-pixbuf audiofilezstd lz4 stb cJSON libpcre MySQL gnulib openexr libmad ettercap lrzip freetds Asterisk ytnefraptor mpg123 exempi libgmime pev v8 sed awk make
    [Show full text]
  • Сравнение Ассемблерных Трансляторов Крис Касперски, Aka Мыщъх, Aka Nezumi, Aka Elrton, Aka Souriz, No E-Mail
    сравнение ассемблерных трансляторов крис касперски, aka мыщъх, aka nezumi, aka elrton, aka souriz, no e-mail. проблема выбора "единственного правильного" ассемблерного транслятора мучает не только начинающих, но и профессиональных программистов. у каждого продукта есть своя когорта поклонниках и спор о преимуществах/недостатках рискует превратиться в священные войны с выносом тел погибших. на форумах такие дискуссии лучше не разводить и вещать в одностороннем порядке, как мыщъх, собственно, и поступил, сравнив MASM, TASM, FASM, NASM, YASM и некоторые другие ассемблеры по всему спектру критериев, значимость которых каждый должен оценивать сам введение Компиляторы языков высокого уровня (Си, Паскаль) в определенной степени совместимы между собой и хотя исходный текст, предназначенный для одного компилятора, не всегда без переделок транслируется на другом, синтаксис и прочие языковые концепции остаются неизменными, позволяя "летать" между MS VC, Intel C++, GCC, Open WATCOM, сравнивая полноту поддержки Стандарта, скорость трансляции, качество кодогенерации, популярность компилятора и вытекающее отсюда изобилие (недостаток) библиотек и компонент к нему. С трансляторами ассемблера все обстоит иначе. Казалось бы, x86 ассемблер — он и в Африке ассемблер, так ведь нет! Помимо поддержки мнемоник машинных команд, каждый транслятор обладает своим собственным набором директив и макросредств, зачастую ни с чем не совместимых. Ассемблерный листинг, "заточенный", например, под MASM, бесполезно переносить на FASM, поскольку, _возможности,_ предоставляемые
    [Show full text]
  • Assembler Programmēšana Un*X Vidē
    Aldis Berjoza Assembler programmēšana Un*x vidē Written by Aldis Berjoza, 2010 http://hg.bsdroot.lv/pub/aldis/asm4BSD Released under Creative Commons Attribution 3.0 Unported License Pēdējo reizi atjaunots 2010.11.22. Apskatāmās Unix veidīgās operētājsistēmas BSD: FreeBSD http://www.freebsd.org OpenBSD http://openbsd.org NetBSD http://netbsd.org DragonflyBSD http://dragonflybsd.org GNU/Linux: Visi n-zin-cik distributīvi, Kodols http://kernel.org/ Rīki Tradicionālie rīki Kodola izsaukumu sekotāji as jeb gas – GNU assembler ktrace & kdump (uz BSD) ld – GNU linker strace (uz GNU/Linux) gdb – GNU debugger objdump Citi assembleri: Citi debugeri Fasm – flat assembler ald Nasm – netwide assembler edb Yasm Citi rīki procstat (uz FreeBSD) lsof (uz Linux) EDB - pašlaik darbojas tikai uz Linux un, iespējams, uz OpenBSD, bet nākamā versija varētu darboties arī uz FreeBSD [tā cer EDB autors] GAS – GNU Assembler Plusi: ● Parasti jau iekļauts operētājsistēmā (var saukties as vai gas) ● Spēj nolasīt C/C++ valodas iekļaujamos .h apraksta failus¹ ● Var atkļūdot ar gdb ● Ļoti pārnēsājams Mīnusi ● Pēc noklusējuma izmanto AT&T sintaksi GAS failiem pieņemts izmantot .s paplašinājumu (file extension) http://www.gnu.org/software/binutils/ 1) turpmāk tekstā .h faili GDB – GNU debugger Plusi: ● Parasti iekļauts operētājsistēmā ● Labs atkļūdotājs C/C++ programmām ● (runā, ka) darbojas, ja asemblera kods ir komilēts ar GAS un ir atkļūdošanas simboli (debugging symbols) ● Ļoti pārnēsājams Mīnusi: ● Ja nav pieejams programmas kods – GDB nekam neder ● Nepierasts interfeiss
    [Show full text]
  • Purebasic Vs Freepascal
    Purebasic vs freepascal click here to download Most mentioned BASIC dialects are not as multi platform as Lazarus or even Freepascal except Purebasic and Realbasic. Logged. Today I downloaded and installed Lazarus (based on Free Pascal) just to . Most of these extra libs for PureBasic are created in C/C++ or are Read DirectUIHWND class window and. But, if you want write native applications, not requiring a third-party dlls and platforms, or native and cross- platform applications, you can't use. I downloaded both Lazarus & PureBasic and tried both and they look OK. I can not decide I love the Laz IDE, it's much faster than www.doorway.ru and. If I could just install a file (like a mdb, or maybe a Firebird DB file), thats use this for its awesome platform support - have a look at PureBasic. There is a language out there called pure basic, which is actually the . just like I can see why people liked Delphi or FreePascal; it's a nicer. Today I'm writing about PureBasic, a portable programming language, that works on Compared to Lazarus which uses freepascal this is small. just use out of the box, e.g. Threading, DLL creation (or sharedobjects), XML, JSON, Sqlite. The following tables list notable software packages that are nominal IDEs; standalone tools . PureBasic · Fantaisie Software · Proprietary, Yes, Yes, Yes, AmigaOS .. Free Pascal IDE, Volunteers, / February 15, , Yes, Yes, Yes . PyQt · GPLv3 "or later", Yes, until version and since version , Yes, since. In my honest opinion, there is not any language which is the easiest to start with, you could start with C++ or with PureBasic, or with C.
    [Show full text]
  • Supersoft C Compiler Table of Contents
    Supersoft C Compiler Table Of Contents CHAPTER 1 Introduction » 1 Modularity 2 Intermediate Output: U-code *... 2 Final Output: Assembly Code 3 Execution Time vs. Compilation Time 3 Recommended Read ing 4 Organization of Tnis Manual 5 CHAPTER 2 ' Using the SuperSoft C Compiler 6 Topics Discussed 6 Files Supplied 7 Under CP/M-80 7 Under CP/M-86 8 Under MS-DOS and PC-DOS 9 Under ZMOS 13 Files Needed for Compilation 11 Command Formats and Sequences 12 Compilation Using ASM 15 Compilation Using MAJ 1' Compilation Using ASMS 6 19 Compilation Using MASM 21 Compilation Using M80 23 Compilation Using RMAC 25 Compilation Using AS 26 Compilation Using RASM ". 27 CoiTLiiand Line Options . ..., 29 CC Machine-Independent Command Line Options 2S CC Machine-Dependent Command Line Options 31 C2, COD2COD, and C2I36 Command Line Options 33 The Compiler Preprocessor Directives 35 The IDEFINE Directive 37 The ILINE Directive 33 The f INCLUDE Directive . ... 38 The *IF, fIFDEF, tIFNDEF, fELSE, and SENDIF Directives 39 The fASM and IENDASM Directive 40 The VJNDEF Directive 42 Using List Functions 43 fc I CHAPTER 3 The SuperSoft C Standard Library Functions 45 Descriptions of the Functions 47 The Functions Grouped According to Use 49 List of Functions 50 CHAPTER 4 Combining Source Code and Altering Assembly Code 125 Method 1: The Relocating Assemolers, Modules, and Libraries 125 Method 2: The fINCLUDE Directive 129 Method 3: The CC Command Line Filename List 130 Method 4: Precompilation and Insertion in a Header File 131 Method 5: Cut and Paste 134 How to Reorigin the Code Generated by the Compiler 136 APPENDIX A The Differences between SuperSoft C and Standard C 138 APPENDIX B I Currently Available Machine and Operating System Configurations of the SuperSoft C Compiler l4l APPENDIX C ] Some Common Problems and Solutions 142 APPENDIX D ' Locations of Supplied Functions and Externals 144 APPENDIX E I Using Overlays under CP/M-33 146 APPENDIX F Error Messages .-.
    [Show full text]
  • Anubis-Linux (V.2)
    Welcome to Anubis-Linux (v.2) – a programming/networking/security -oriented remastered version of SimplyMEPIS – A gentle introduction to Linux for (ex-)Windows® users. DISCLAIMER/LICENSE Anubis-Linux is a distribution based on SimplyMEPIS. Being a remaster means that MEPIS LLC doesn't support it and its development in any way. The original MEPIS License and documentation are preserved in docs.MEPIS.zip and info.MEPIS.zip for informational purposes. Anubis-Linux contains cryptographic software that is forbidden under U.S. law to be exported to and used in certain countries. Please inform yourself on the matters particular to the region where you live in. Anubis-Linux is provided AS-IS. No guarantees, and no warranties whatsoever (expressed or implied) are given regarding Anubis-Linux's correct functioning or fitness for a particular purpose. The authors of Anubis-Linux shall not be held liable in case of any kind of damage whatsoever (i.e. data loss) induced or caused by the use of Anubis-Linux. This is experimental software. You use Anubis- Linux at your own risk. By installing, running or otherwise using Anubis-Linux, you must understand, agree to and comply with the above terms. Otherwise do not use Anubis-Linux. The documentation and software in Anubis-Linux are freely redistributable but licensed varyingly. Please check their individual licenses for more information. All trademark/copyright rights are property of their respective owners. Linux is a registered trademark of Linus Torvalds. Debian is a registered trademark of Software in the Public Interest Inc. MEPIS and the MEPIS Logo are registered trademarks of MEPIS LLC.
    [Show full text]
  • Fasmw.Exe, While Fasm.Exe Is the Command Line Version
    flat assembler 1.73 Programmer's Manual Tomasz Grysztar 2 Chapter 1 Introduction This chapter contains all the most important information you need to begin using the flat assembler. If you are experienced assembly language programmer, you should read at least this chapter before using this compiler. 1.1 Compiler overview Flat assembler is a fast assembly language compiler for the x86 architecture processors, which does multiple passes to optimize the size of generated machine code. It is self{ compilable and versions for different operating systems are provided. They are designed to be used from the system command line and they should not differ in behavior. This document describes also the IDE version designed for the Windows system, which uses the graphical interface instead of console and has the integrated editor. But from the compilation point of view it has exactly the same functionality as all the console versions, and so later parts (beginning from 1.2) of this document are common with other releases. The executable of the IDE version is called fasmw.exe, while fasm.exe is the command line version. 1.1.1 System requirements All versions require the x86 architecture 32{bit processor (at least 80386), although they can produce programs for the x86 architecture 16{bit processors, too. Windows console version requires any Win32 operating system, while Windows GUI version requires the Win32 GUI system version 4.0 or higher, so it should run on all systems compatible with Windows 95. The example source provided with this version require you have environment variable INCLUDE set to the path of the include directory, which is the part of flat assembler package.
    [Show full text]
  • 5 HLA Internal Operation
    HLA Reference Manual 5/24/10 Chapter 5 5 HLA Internal Operation To effectively use HLA, it helps to understand how HLA translates HLA source files into executable machine code. This information is particularly useful if you install HLA incorrectly and you cannot successfully compile a simple demo program. Beyond that, this information can also help you take advantage of more advanced HLA and OS features. As noted earlier in the HLA documentation, HLA is not a single application; the HLA system is a collection of programs that work together to translate your HLA source files into executable files. This is not unusual, most compilers and assemblers provide only part of the conversion from source to executable (e.g., you still have to run a linker with most compilers and assemblers to produce an executable). The HLA system offers a rich set of different configurations that allow you to mix and match components to efficiently process your assembly language applications. First of all, HLA is relatively portable. The compiler itself is written with Flex, Bison, C/C++, along with some platform-independent assembly language code (written in HLA, of course). This makes it easy to move the compiler from one operating system to another. Currently, HLA is supported under Windows, Linux, FreeBSD, and Mac OSX. Plans include porting HLA to NetBSD, OpenBSD, QNX and, perhaps, Solaris at some point in the future. Even within a single operating system, HLA offers multiple configurations that you can employ, based on your needs and desires. This section will describe some of the possible configurations you might create.
    [Show full text]