Civil Rights
Movements, leaders, victories and the continuing fight for equality.
Explore the people, places, events, achievements, struggles and stories that shaped our journey.
Movements, leaders, victories and the continuing fight for equality.
Innovation, patents, science, technology and world-changing contributions.
Pioneers, champions, Negro Leagues, records, activism and excellence.
Meet the people whose lives, choices and achievements shaped the journey.
Black towns, communities, institutions and places where history happened.
Moments that changed communities, movements, institutions and the nation.
In August 1908, a white mob attacked Springfield, Illinois’s Black community, destroying homes and businesses and lynching two Black men. National outrage over the violence helped spur the movement that created the NAACP the following year.
MORE →Reflects the personal views, recollections, and perspective of the author, Mike Davis.
This is a personal recollection on the Move fire on May 13, 1985
In computer programming, conditional compilation is a compilation technique which results in differing executable programs depending on parameters specified. This technique is commonly used when these differences in the program are needed to run it on different platforms, or with different versions of required libraries or hardware.
Many programming languages support conditional compilation. Typically compiler directives define or "undefine" certain variables; other directives test these variables and modify compilation accordingly. For example, not using an actual language, the compiler may be set to define "Macintosh" and undefine "PC", and the code may contain:
(* System generic code *)
if mac != Null then
(* macOS specific code *)
else if pc != Null
(* Windows specific code *)
In C and some languages with a similar syntax, this is done using an '#ifdef' directive.
A similar procedure, using the name "conditional comment", is used by Microsoft Internet Explorer from version 5 to 9 to interpret HTML code. There is also a similar proprietary mechanism for adding conditional comments within JScript, known as conditional compilation.[1]
C# provides preprocessor directives for conditional compilation.[2]
#if DEBUG
Console.WriteLine("Debug version");
#endif
Rust supports conditional compilation.[3]
#[cfg_attr(target_os = "linux", path = "linux.rs")]
#[cfg_attr(windows, path = "windows.rs")]
mod os;
When conditional compilation depends on too many variables, it can make the code harder to reason about as the number of possible combinations of configuration increases exponentially.[4][5][6] When conditional compilation is done via a preprocessor that does not guarantee syntactically correct output in the source language, such as the C preprocessor, this may lead to hard-to-debug compilation errors,[7][8][9] which is sometimes called "#ifdef hell."[10][11]
{{cite book}}: |work= ignored (help)
Source: Wikipedia. Article content is retrieved live through the MediaWiki API.
In computer programming, conditional compilation is a compilation technique which results in differing executable programs depending on parameters specified. This technique is commonly used when these differences in the program are needed to run it on different platforms, or with different versions of required libraries or hardware. Many programming languages support conditional compilation. Typically compiler directives define or "undefine" certain variables; other directives test these variables and modify compilation accordingly. For example, not using an actual language, the compiler may be set to define "Macintosh" and undefine "PC", and the code may contain: In C and some languages with a similar syntax, this is done using an '#ifdef' directive. A similar procedure, using the name "conditional comment", is used by Microsoft Internet Explorer from version 5 to 9 to interpret HTML code. There is also a similar proprietary mechanism for adding conditional comments within JScript, known as conditional compilation.
ConTeXt, stylised as ConTeXt, is a general-purpose document processor. Like LaTeX, it is derived from the TeX typesetting system. ConTeXt is especially suited for structured documents, automated document production, very fine typography, and multilingual typesetting. It is based in part on TeX, and uses a document markup language for manuscript preparation. The typographical and automated capabilities of ConTeXt are extensive, including interfaces for handling microtypography, multiple footnotes and footnote classes, and manipulating OpenType fonts and features. Moreover, ConTeXt offers extensive support for colors, backgrounds, hyperlinks, presentations, figure-text integration, and conditional compilation. It gives the user extensive control over formatting, while making it easy to create new layouts and styles without learning the low-level TeX macro language. While comparisons can be made between ConTeXt and LaTeX, the primary objectives of the two systems are distinct. From the outset, ConTeXt has been a typography and typesetting system designed to give users straightforward and consistent access to advanced typographical control, which is crucial for general-purpose typesetting. LaTeX's original vision, on the other hand, was to insulate the user from typographical decisions—an approach particularly useful for tasks such as submitting articles to a scientific journal. Although LaTeX has evolved from this original vision, ConTeXt's unified design prevents the package clashes which are often experienced with LaTeX. ConTeXt provides a multilingual user interface with support for markup in English, Dutch, German, French, and Italian, and support for output in many scripts including western European, eastern European, Arabic, Chinese, Japanese, and Korean. It also allows the user to use different TeX engines, like LuaTeX (MkIV) and LuaMetaTeX (LMTX). Older versions (MkII) worked with pdfTeX or XeTeX. As its native drawing engine, ConTeXt integrates a superset of MetaPost called MetaFun, which allows users to draw page backgrounds and ornaments with MetaPost. MetaFun can also be used directly with MetaPost. ConTeXt also supports the use of other external drawing engines, like PGF/TikZ and PSTricks. ConTeXt also provides a macro package for typesetting chemical structure diagrams with TeX, called PPCHTeX, as well as many other modules. This package can also be used with plain TeX and LaTeX. Originally titled pragmatex, ConTeXt was given its name around 1996 by Hans Hagen from PRAGMA Advanced Document Engineering (Pragma ADE), a Netherlands-based company.
GNU GLOBAL is a software tool for source code tagging to aid code comprehension. It works in a uniform fashion in various environments (GNU Emacs, Vim, GNU less, GNU Bash, web browsers, etc.), allowing users to find all objects declared in the source files and to move among them easily. It is particularly useful for working on projects containing numerous sub-projects and complex syntax trees generated by the compilation process (e.g., C code containing numerous #ifdef directive which select among several main() functions using conditional compilation). It is similar to older tagging software such as ctags and etags, but differs in its independence from any specific text editor. GNU GLOBAL is free software maintained for the GNU project by Shigio Yamaguchi.
The C preprocessor (CPP) is a text file processor that is used with C, C++ and other programming tools. The preprocessor provides for file inclusion (often header files), macro expansion, conditional compilation, and line control. Although named in association with C and used with C, the preprocessor capabilities are not inherently tied to the C language. It can be and is used to process other kinds of files.
Before the 1921 destruction of Tulsa’s Greenwood District, Black residents had created a remarkable center of business and community life. The district included stores, professional offices, entertainment venues and homes owned by Black citizens. Understanding Greenwood means learning what was built—not only what was burned.
MORE →Brown v. Board of Education in 1954.