- Availability
- {{availability}}
- Infrared
- GPS
- Network Support
- {{$ctrl.phone.connectivity.cell}}
- WiFi
- {{$ctrl.phone.connectivity.wifi}}
- Bluetooth
- {{$ctrl.phone.connectivity.bluetooth}}
- Infrared
- GPS
- OS Version
- {{$ctrl.phone.android.os}}
- UI
- {{$ctrl.phone.android.ui}}
- CPU
- {{$ctrl.phone.hardware.cpu}}
- USB
- {{$ctrl.phone.hardware.usb}}
- Audio / headphone jack
- {{$ctrl.phone.hardware.audioJack}}
- FM Radio
- Accelerometer
- RAM
- {{$ctrl.phone.storage.ram}}
- Internal Storage
- {{$ctrl.phone.storage.flash}}
- Screen size
- {{$ctrl.phone.display.screenSize}}
- Screen resolution
- {{$ctrl.phone.display.screenResolution}}
- Touch screen
- Battery Type
- {{$ctrl.phone.battery.type}}
- Talk Time
- {{$ctrl.phone.battery.talkTime}}
- Standby time (max)
- {{$ctrl.phone.battery.standbyTime}}
- Dimensions
- {{dim}}
- Weight
- {{$ctrl.phone.sizeAndWeight.weight}}
- Primary
- {{$ctrl.phone.camera.primary}}
- Features
- {{$ctrl.phone.camera.features.join(', ')}}
{{$ctrl.phone.additionalFeatures}}


Looking for the best Disney+ deal? Check out these bundles, promos, and more
by Michael PotuckReady to sign up for the highly anticipated Disney+ streaming service but aren’t sure which plan is the best option? Read on for how to find the best Disney+ deal as we cover promos and bundles compared to the basic subscription plan options.
Disney+ launches on November 12 with new original content like The Mandalorian as well as its massive catalog of popular movies and shows that includes Disney, Pixar, Marvel, Star Wars, and even National Geographic content.
Customers can sign up for the basic Disney+ streaming plan that costs $7/month now, but there’s likely a better option for you between a special one-year free promo, Hulu/ESPN+ bundle, and a discount on paying yearly. Follow along below to find the best deal for you.
How to get the best Disney+ deal: promo, bundle option, more
Free year of Disney+
Disney offered D23 members a special promotion to buy two years of Disney+ and get one free back in September. That promo isn’t available anymore, but there is good news for Verizon customers. The carrier has partnered with Disney to give “all new and existing 4G LTE and 5G unlimited wireless customers” a free year of the service.
Verizon is also offering the deal to “New Verizon Fios Home Internet and 5G Home Internet customers.”
- Verizon customers can head to this page to claim your free year of Disney+.
If you happened to get the D23 three-year deal and also are a Verizon customer, the carrier has said that it will be possible to still use the free year first, then resume the three-year prepaid subscription.
Bundle option
Another choice that will be appealing to many customers is the bundle option to get Disney+, Hulu, and ESPN+ for just $13/month. That’s just $6 more than the price of Disney+ on its own (and $5 less than buying them all separate).
Monthly vs. yearly pricing and free trial
At the time of writing, Disney is offering customers a free seven-day trial for the service. After that, it runs $7/month or $70/year. The yearly price breaks down to be $5.83/month, saving customers $14 compared to paying monthly over the same period.
Disney+ app
Don’t forget to grab the Disney+ app for iPhone, iPad, and Apple TV. And you can read more about watching it on a variety of devices here.
Check out Disney’s three-hour YouTube montage that covers everything coming to Disney+ below.
FTC: We use income earning auto affiliate links. More.


pymatgen.apps.battery.conversion_battery module¶
-
class
ConversionElectrode
(voltage_pairs, working_ion_entry, initial_comp)[source]¶ Bases:
pymatgen.apps.battery.battery_abc.AbstractElectrode
Class representing a ConversionElectrode.
General constructor for ConversionElectrode. However, it is usually easier to construct a ConversionElectrode using one of the static constructors provided.
Parameters: - voltage_pairs – The voltage pairs making up the Conversion Electrode.
- working_ion_entry – A single ComputedEntry or PDEntry representing the element that carries charge across the battery, e.g. Li.
- initial_comp – Starting composition for ConversionElectrode.
-
composition
¶
-
static
from_composition_and_entries
(comp, entries_in_chemsys, working_ion_symbol='Li')[source]¶ Convenience constructor to make a ConversionElectrode from a composition and all entries in a chemical system.
Parameters: - comp – Starting composition for ConversionElectrode, e.g., Composition(“FeF3”)
- entries_in_chemsys – Sequence containing all entries in a chemical system. E.g., all Li-Fe-F containing entries.
- working_ion_symbol – Element symbol of working ion. Defaults to Li.
-
static
from_composition_and_pd
(comp, pd, working_ion_symbol='Li')[source]¶ Convenience constructor to make a ConversionElectrode from a composition and a phase diagram.
Parameters: - comp – Starting composition for ConversionElectrode, e.g., Composition(“FeF3”)
- pd – A PhaseDiagram of the relevant system (e.g., Li-Fe-F)
- working_ion_symbol – Element symbol of working ion. Defaults to Li.
-
get_sub_electrodes
(adjacent_only=True)[source]¶ If this electrode contains multiple voltage steps, then it is possible to use only a subset of the voltage steps to define other electrodes. For example, an LiTiO2 electrode might contain three subelectrodes: [LiTiO2 –> TiO2, LiTiO2 –> Li0.5TiO2, Li0.5TiO2 –> TiO2] This method can be used to return all the subelectrodes with some options
Parameters: adjacent_only – Only return electrodes from compounds that are adjacent on the convex hull, i.e. no electrodes returned will have multiple voltage steps if this is set true Returns: A list of ConversionElectrode objects
-
get_summary_dict
(print_subelectrodes=True)[source]¶ Parameters: print_subelectrodes – Also print data on all the possible subelectrodes Returns: a summary of this electrode”s properties in dictionary format
-
is_super_electrode
(conversion_electrode)[source]¶ Checks if a particular conversion electrode is a sub electrode of the current electrode. Starting from a more lithiated state may result in a subelectrode that is essentially on the same path. For example, a ConversionElectrode formed by starting from an FePO4 composition would be a super_electrode of a ConversionElectrode formed from an LiFePO4 composition.
-
voltage_pairs
¶ Returns all the VoltagePairs
-
working_ion
¶ The working ion as an Element object
-
working_ion_entry
¶ The working ion as an Entry object
-
class
ConversionVoltagePair
(balanced_rxn, voltage, mAh, vol_charge, vol_discharge, mass_charge, mass_discharge, frac_charge, frac_discharge, entries_charge, entries_discharge, working_ion_entry)[source]¶ Bases:
pymatgen.apps.battery.battery_abc.AbstractVoltagePair
A VoltagePair representing a Conversion Reaction with a defined voltage. Typically not initialized directly but rather used by ConversionElectrode.
Parameters: - balanced_rxn (BalancedReaction) – BalancedReaction for the step
- voltage (float) – Voltage for the step
- mAh (float) – Capacity of the step
- vol_charge (float) – Volume of charged state
- vol_discharge (float) – Volume of discharged state
- mass_charge (float) – Mass of charged state
- mass_discharge (float) – Mass of discharged state
- frac_charge (float) – Fraction of working ion in the charged state
- frac_discharge (float) – Fraction of working ion in the discharged state
- entries_charge ([ComputedEntry]) – Entries in the charged state
- entries_discharge ([ComputedEntry]) – Entries in discharged state
- working_ion_entry (ComputedEntry) – Entry of the working ion.
-
entries_charge
¶
-
entries_discharge
¶
-
frac_charge
¶
-
frac_discharge
¶
-
static
from_steps
(step1, step2, normalization_els)[source]¶ Creates a ConversionVoltagePair from two steps in the element profile from a PD analysis.
Parameters: - step1 – Starting step
- step2 – Ending step
- normalization_els – Elements to normalize the reaction by. To ensure correct capacities.
-
mAh
¶
-
mass_charge
¶
-
mass_discharge
¶
-
rxn
¶
-
vol_charge
¶
-
vol_discharge
¶
-
voltage
¶
-
working_ion
¶
-
working_ion_entry
¶


Projects{{ content }} |
I'm Ben Kurtovic, a student, software developer, and Wikipedian who occasionally messes around with game production. I'm the guy behind mwparserfromhell and EarwigBot. On this page, you can find my identities on a few other sites, check out the projects I'm working on, and read some of my incessant ramblings in blog form. Posts
TweetsTweets by @the_earwig |


The include file is inserted into the input stream during the parsing
phase. The primary input file and all the included file(s) are treated
as a single file; that is, b2
infers no scope boundaries from included
files.
local vars [ = values ] ;
Creates new vars inside to the enclosing {}
block, obscuring any
previous values they might have. The previous values for vars are
restored when the current block ends. Any rule called or file included
will see the local and not the previous value (this is sometimes called
Dynamic Scoping). The local statement may appear anywhere, even outside
of a block (in which case the previous value is restored when the input
ends). The vars are initialized to values if present, or left
uninitialized otherwise.
return values ;
Within a rule body, the return statement sets the return value for an invocation of the rule and returns to the caller.
switch value
{
case pattern1 : statements ;
case pattern2 : statements ;
...
}
The switch statement executes zero or one of the enclosed statements, depending on which, if any, is the first case whose pattern matches value. The pattern values are not variable-expanded. The pattern values may include the following wildcards:
?
-
match any single character
*
-
match zero or more characters
[chars]
-
match any single character in chars
[^chars]
-
match any single character not in chars
\x
-
match x (escapes the other wildcards)
while cond { statements }
Repeatedly execute statements while cond remains true upon entry. (See the description of cond expression syntax under if, above).
break ;
Immediately exits the nearest enclosing while or for loop.
continue ;
Jumps to the top of the nearest enclosing while or for loop.
12.2.6. Variables
B2
variables are lists of zero or more elements, with each element
being a string value. An undefined variable is indistinguishable from a
variable with an empty list, however, a defined variable may have one
more elements which are null strings. All variables are referenced as
$(variable)
.
Variables are either global or target-specific. In the latter case, the variable takes on the given value only during the updating of the specific target.
A variable is defined with:
variable = elements ;
variable += elements ;
variable on targets = elements ;
variable on targets += elements ;
variable default = elements ;
variable ?= elements ;
The first two forms set variable globally. The third and forth forms
set a target-specific variable. The =
operator replaces any previous
elements of variable with elements; the +=
operation adds
elements to variable's list of elements. The final two forms are
synonymous: they set variable globally, but only if it was previously
unset.
Variables referenced in updating commands will be replaced with their
values; target-specific values take precedence over global values.
Variables passed as arguments ($(1)
and $(2)
) to actions are
replaced with their bound values; the bind
modifier can be used on
actions to cause other variables to be replaced with bound values. See
Action Modifiers above.
B2
variables are not re-exported to the environment of the shell that
executes the updating actions, but the updating actions can reference
b2
variables with $(variable)
.
Variable Expansion
During parsing, b2
performs variable expansion on each token that is
not a keyword or rule name. Such tokens with embedded variable
references are replaced with zero or more tokens. Variable references
are of the form $(v)
or $(vm)
, where v is the variable name, and
m are optional modifiers.
Variable expansion in a rule’s actions is similar to variable expansion in statements, except that the action string is tokenized at whitespace regardless of quoting.
The result of a token after variable expansion is the product of the components of the token, where each component is a literal substring or a list substituting a variable reference. For example:
$(X) -> a b c
t$(X) -> ta tb tc
$(X)z -> az bz cz
$(X)-$(X) -> a-a a-b a-c b-a b-b b-c c-a c-b c-c
The variable name and modifiers can themselves contain a variable reference, and this partakes of the product as well:
$(X) -> a b c
$(Y) -> 1 2
$(Z) -> X Y
$($(Z)) -> a b c 1 2
Because of this product expansion, if any variable reference in a token is undefined, the result of the expansion is an empty list. If any variable element is a null string, the result propagates the non-null elements:
$(X) -> a ""
$(Y) -> "" 1
$(Z) ->
-$(X)$(Y)- -> -a- -a1- -- -1-
-$(X)$(Z)- ->
A variable element’s string value can be parsed into grist and filename-related components. Modifiers to a variable are used to select elements, select components, and replace components. The modifiers are:
[n]
-
Select element number n (starting at 1). If the variable contains fewer than n elements, the result is a zero-element list. n can be negative in which case the element number n from the last leftward is returned.
[n-m]
-
Select elements number n through m. n and m can be negative in which case they refer to elements counting from the last leftward.
[n-]
-
Select elements number n through the last. n can be negative in which case it refers to the element counting from the last leftward.
:B
-
Select filename base — a basename without extension.
:S
-
Select file extension — a (last) filename suffix.
:M
-
Select archive member name.
:D
-
Select directory path.
:P
-
Select parent directory.
:G
-
Select grist.
:U
-
Replace lowercase characters with uppercase.
:L
-
Replace uppercase characters with lowercase.
:T
-
Converts all back-slashes ("\") to forward slashes ("/"). For example
x = "C:\\Program Files\\Borland" ; ECHO $(x:T) ;
prints
C:/Program Files/Borland
:W
-
When invoking Windows-based tools from Cygwin it can be important to pass them true windows-style paths. The
:W
modifier, under Cygwin only, turns a cygwin path into a Win32 path using thecygwin_conv_to_win32_path
function. For examplex = "/cygdrive/c/Program Files/Borland" ; ECHO $(x:W) ;
prints
C:\Program Files\Borland
on CygwinSimilarly, when used on OpenVMS, the
:W
modifier translates a POSIX-style path into native VMS-style format usingdecc$to_vms
CRTL function. This modifier is generally used inside action blocks to properly specify file paths in VMS-specific commands. For examplex = "subdir/filename.c" ; ECHO $(x:W) ;
prints
[.subdir]filename.c
on OpenVMSOn other platforms, the string is unchanged.
:chars
-
Select the components listed in chars.
For example,
:BS
selects filename (basename and extension). :G=grist
-
Replace grist with grist.
:D=path
-
Replace directory with path.
:B=base
-
Replace the base part of file name with base.
:S=suf
-
Replace the suffix of file name with suf.
:M=mem
-
Replace the archive member name with mem.
:R=root
-
Prepend root to the whole file name, if not already rooted.
:E=value
-
Assign value to the variable if it is unset.
:J=joinval
-
Concatenate list elements into single element, separated by joinval.
:O=value
-
Sets semantic options for the evaluation of the variable. The format of the value is specific to either variable or generated file expansion.
On VMS, $(var:P)
is the parent directory of $(var:D)
.
:⇐value
-
After evaluating the expansion of the variable prefixes the given value to the elements of the expanded expression values.
:>=value
-
After evaluating the expansion of the variable postfixes the given value to the elements of the expanded expression values.
Local For Loop Variables
Boost Jam allows you to declare a local for loop control variable right in the loop:
x = 1 2 3 ;
y = 4 5 6 ;
for local y in $(x)
{
ECHO $(y) ; # prints "1", "2", or "3"
}
ECHO $(y) ; # prints "4 5 6"
Generated File Expansion
During expansion of expressions b2
also looks for subexpressions of
the form @(filename:E=filecontents)
and replaces the expression with
filename
after creating the given file with the contents set to
filecontents
. This is useful for creating compiler response files, and
other "internal" files. The expansion works both during parsing and
action execution. Hence it is possible to create files during any of the
three build phases. This expansion follows the same modifiers as variable
expansion. The generated file expansion accepts these (:O=
) expansion
option values:
F
-
Always replace the
@()
reference with the name of the file generated. C
-
Always replace the
@()
reference with the contents, i.e. the value in the:E=value
expression. FC
orCF
-
Replace with either the file or contents depending on the length of the contents (
:E=value
). It will replace with the contents in an action if the length of the command is shorter than the allowed command length limit. Otherwise the reference is replaced with the filename.
Built-in Variables
This section discusses variables that have special meaning to b2
. All
of these must be defined or used in the global module — using those
variables inside a named module will not have the desired effect. See
Modules.
SEARCH and LOCATE
These two variables control the binding of file target names to
locations in the file system. Generally, $(SEARCH)
is used to find
existing sources while $(LOCATE)
is used to fix the location for built
targets.
Rooted (absolute path) file targets are bound as is. Unrooted file
target names are also normally bound as is, and thus relative to the
current directory, but the settings of $(LOCATE)
and $(SEARCH)
alter
this:
-
If
$(LOCATE)
is set then the target is bound relative to the first directory in$(LOCATE)
. Only the first element is used for binding. -
If
$(SEARCH)
is set then the target is bound to the first directory in$(SEARCH)
where the target file already exists. -
If the
$(SEARCH)
search fails, the target is bound relative to the current directory anyhow.
Both $(SEARCH)
and $(LOCATE)
should be set target-specific and not
globally. If they were set globally, b2
would use the same paths for
all file binding, which is not likely to produce sane results. When
writing your own rules, especially ones not built upon those in Jambase,
you may need to set $(SEARCH)
or $(LOCATE)
directly. Almost all of
the rules defined in Jambase set $(SEARCH)
and $(LOCATE)
to sensible
values for sources they are looking for and targets they create,
respectively.
HDRSCAN and HDRRULE
These two variables control header file scanning. $(HDRSCAN)
is an
egrep(1)
pattern, with ()'s surrounding the file name, used to find
file inclusion statements in source files. Jambase
uses
$(HDRPATTERN)
as the pattern for $(HDRSCAN)
. $(HDRRULE)
is the
name of a rule to invoke with the results of the scan: the scanned file
is the target, the found files are the sources. This is the only place
where b2
invokes a rule through a variable setting.
Both $(HDRSCAN)
and $(HDRRULE)
must be set for header file scanning
to take place, and they should be set target-specific and not globally.
If they were set globally, all files, including executables and
libraries, would be scanned for header file include statements.
The scanning for header file inclusions is not exact, but it is at least
dynamic, so there is no need to run something like makedepend(GNU)
to
create a static dependency file. The scanning mechanism errs on the side
of inclusion (i.e., it is more likely to return filenames that are not
actually used by the compiler than to miss include files) because it
can’t tell if #include
lines are inside #ifdefs
or other conditional
logic. In Jambase
, HdrRule
applies the NOCARE
rule to each header
file found during scanning so that if the file isn’t present yet doesn’t
cause the compilation to fail, b2
won’t care.
Also, scanning for regular expressions only works where the included
file name is literally in the source file. It can’t handle languages
that allow including files using variable names (as the Jam
language
itself does).
Semaphores
It is sometimes desirable to disallow parallel execution of some actions. For example:
-
Old versions of yacc use files with fixed names. So, running two yacc actions is dangerous.
-
One might want to perform parallel compiling, but not do parallel linking, because linking is i/o bound and only gets slower.
Craig McPeeters has extended Perforce Jam to solve such problems, and that extension was integrated in Boost.Jam.
Any target can be assigned a semaphore, by setting a variable called
SEMAPHORE
on that target. The value of the variable is the semaphore
name. It must be different from names of any declared target, but is
arbitrary otherwise.
The semantic of semaphores is that in a group of targets which have the
same semaphore, only one can be updated at the moment, regardless of
-j
option.
Jam Version
JAMDATE
-
Time and date at
b2
start-up as an ISO-8601 UTC value. JAMUNAME
-
Output of uname(1) command (Unix only)
JAMVERSION
-
b2
version, as a sematic triplet "X.Y.Z". JAM_VERSION
-
A predefined global variable with two elements indicates the version number of Boost Jam. Boost Jam versions start at
03
00
. Earlier versions ofJam
do not automatically defineJAM_VERSION
.
JAMSHELL
When b2
executes a rule’s action block, it forks and execs a shell,
passing the action block as an argument to the shell. The invocation of
the shell can be controlled by $(JAMSHELL)
. The default on Unix is,
for example:
JAMSHELL = /bin/sh -c % ;
The %
is replaced with the text of the action block.
B2
does not directly support building in parallel across multiple
hosts, since that is heavily dependent on the local environment. To
build in parallel across multiple hosts, you need to write your own
shell that provides access to the multiple hosts. You then reset
$(JAMSHELL)
to reference it.
Just as b2
expands a %
to be the text of the rule’s action block, it
expands a !
to be the multi-process slot number. The slot number
varies between 1 and the number of concurrent jobs permitted by the -j
flag given on the command line. Armed with this, it is possible to write
a multiple host shell. For example:
#!/bin/sh
# This sample JAMSHELL uses the SunOS on(1) command to execute a
# command string with an identical environment on another host.
# Set JAMSHELL = jamshell ! %
#
# where jamshell is the name of this shell file.
#
# This version handles up to -j6; after that they get executed
# locally.
case $1 in
1|4) on winken sh -c "$2";;
2|5) on blinken sh -c "$2";;
3|6) on nod sh -c "$2";;
*) eval "$2";;
esac
__TIMING_RULE__
and __ACTION_RULE__
The __TIMING_RULE__
and __ACTION_RULE__
can be set to the name of a
rule for b2
to call after an action completes for a target. They
both give diagnostic information about the action that completed. For
__TIMING_RULE__
the rule is called as:
rule timing-rule ( args * : target : start end user system )
And __ACTION_RULE__
is called as:
rule action-rule ( args * : target : command status start end user system : output ? )
The arguments for both are:
args
-
Any values following the rule name in the
__TIMING_RULE__
or__ACTION_RULE__
are passed along here. target
-
The
b2
target that was built. command
-
The text of the executed command in the action body.
status
-
The integer result of the executed command.
start
-
The starting timestamp of the executed command as a ISO-8601 UTC value.
end
-
The completion timestamp of the executed command as a ISO-8601 UTC value.
user
-
The number of user CPU seconds the executed command spent as a floating point value.
system
-
The number of system CPU seconds the executed command spent as a floating point value.
output
-
The output of the command as a single string. The content of the output reflects the use of the
-pX
option.
|
ℹ
|
If both variables are set for a target both are called, first
__TIMING_RULE__ then __ACTION_RULE__ .
|
12.2.7. Modules
Boost Jam introduces support for modules, which provide some rudimentary
namespace protection for rules and variables. A new keyword, module
was also introduced. The features described in this section are
primitives, meaning that they are meant to provide the operations needed
to write Jam rules which provide a more elegant module interface.
Declaration
module expression { ... }
Code within the { … }
executes within the module named by evaluating
expression. Rule definitions can be found in the module’s own namespace,
and in the namespace of the global module as module-name.rule-name,
so within a module, other rules in that module may always be invoked
without qualification:
module my_module
{
rule salute ( x ) { ECHO $(x), world ; }
rule greet ( ) { salute hello ; }
greet ;
}
my_module.salute goodbye ;
When an invoked rule is not found in the current module’s namespace, it is looked up in the namespace of the global module, so qualified calls work across modules:
module your_module
{
rule bedtime ( ) { my_module.salute goodnight ; }
}
Variable Scope
Each module has its own set of dynamically nested variable scopes. When execution passes from module A to module B, all the variable bindings from A become unavailable, and are replaced by the bindings that belong to B. This applies equally to local and global variables:
module A
{
x = 1 ;
rule f ( )
{
local y = 999 ; # becomes visible again when B.f calls A.g
B.f ;
}
rule g ( )
{
ECHO $(y) ; # prints "999"
}
}
module B
{
y = 2 ;
rule f ( )
{
ECHO $(y) ; # always prints "2"
A.g ;
}
}
The only way to access another module’s variables is by entering that module:
rule peek ( module-name ? : variables + )
{
module $(module-name)
{
return $($(>)) ;
}
}
Note that because existing variable bindings change whenever a new
module scope is entered, argument bindings become unavailable. That
explains the use of $(>)
in the peek rule above.
Local Rules
local rule rulename...
The rule is declared locally to the current module. It is not entered in the global module with qualification, and its name will not appear in the result of:
[ RULENAMES module-name ]
The RULENAMES
Rule
rule RULENAMES ( module ? )
Returns a list of the names of all non-local rules in the given module. If module is omitted, the names of all non-local rules in the global module are returned.
The VARNAMES
Rule
rule VARNAMES ( module ? )
Returns a list of the names of all variable bindings in the given module. If module is omitted, the names of all variable bindings in the global module are returned.
|
ℹ
|
This includes any local variables in rules from the call stack which
have not returned at the time of the VARNAMES invocation.
|
The IMPORT
Rule
IMPORT
allows rule name aliasing across modules:
rule IMPORT ( source_module ? : source_rules *
: target_module ? : target_rules * )
The IMPORT
rule copies rules from the source_module into the
target_module as local rules. If either source_module or
target_module is not supplied, it refers to the global module.
source_rules specifies which rules from the source_module to import;
target_rules specifies the names to give those rules in
target_module. If source_rules contains a name which doesn’t
correspond to a rule in source_module, or if it contains a different
number of items than target_rules, an error is issued. For example,
# import m1.rule1 into m2 as local rule m1-rule1.
IMPORT m1 : rule1 : m2 : m1-rule1 ;
# import all non-local rules from m1 into m2
IMPORT m1 : [ RULENAMES m1 ] : m2 : [ RULENAMES m1 ] ;
The EXPORT
Rule
EXPORT
allows rule name aliasing across modules:
rule EXPORT ( module ? : rules * )
The EXPORT
rule marks rules from the source_module
as non-local
(and thus exportable). If an element of rules does not name a rule in
module, an error is issued. For example,
module X {
local rule r { ECHO X.r ; }
}
IMPORT X : r : : r ; # error - r is local in X
EXPORT X : r ;
IMPORT X : r : : r ; # OK.
The CALLER_MODULE
Rule
rule CALLER_MODULE ( levels ? )
CALLER_MODULE
returns the name of the module scope enclosing the call
to its caller (if levels is supplied, it is interpreted as an integer
number of additional levels of call stack to traverse to locate the
module). If the scope belongs to the global module, or if no such module
exists, returns the empty list. For example, the following prints "{Y}
{X}":
module X {
rule get-caller { return [ CALLER_MODULE ] ; }
rule get-caller's-caller { return [ CALLER_MODULE 1 ] ; }
rule call-Y { return Y.call-X2 ; }
}
module Y {
rule call-X { return X.get-caller ; }
rule call-X2 { return X.get-caller's-caller ; }
}
callers = [ X.get-caller ] [ Y.call-X ] [ X.call-Y ] ;
ECHO {$(callers)} ;
The DELETE_MODULE
Rule
rule DELETE_MODULE ( module ? )
DELETE_MODULE
removes all of the variable bindings and
otherwise-unreferenced rules from the given module (or the global
module, if no module is supplied), and returns their memory to the
system.
|
ℹ
|
Though it won’t affect rules that are currently executing until they
complete, DELETE_MODULE should be used with extreme care because it
will wipe out any others and all variable (including locals in that
module) immediately. Because of the way dynamic binding works, variables
which are shadowed by locals will not be destroyed, so the results can
be really unpredictable.
|
12.3. Miscellaneous
12.3.1. Diagnostics
In addition to generic error messages, b2
may emit one of the
following:
warning: unknown rule X
A rule was invoked that has not been defined with an actions
or
rule
statement.
using N temp target(s)
Targets marked as being temporary (but nonetheless present) have been found.
updating N target(s)
Targets are out-of-date and will be updated.
can't find N target(s)
Source files can’t be found and there are no actions to create them.
can't make N target(s)
Due to sources not being found, other targets cannot be made.
warning: X depends on itself
A target depends on itself either directly or through its sources.
don't know how to make X
A target is not present and no actions have been defined to create it.
X skipped for lack of Y
A source failed to build, and thus a target cannot be built.
warning: using independent target X
A target that is not a dependency of any other target is being
referenced with $(<)
or $(>)
.
X removed
B2
removed a partially built target after being interrupted.
12.3.2. Bugs, Limitations
For parallel building to be successful, the dependencies among files
must be properly spelled out, as targets tend to get built in a
quickest-first ordering. Also, beware of un-parallelizable commands that
drop fixed-named files into the current directory, like yacc(1)
does.
A poorly set $(JAMSHELL)
is likely to result in silent failure.
12.3.3. Fundamentals
This section is derived from the official Jam documentation and from experience using it and reading the Jambase rules. We repeat the information here mostly because it is essential to understanding and using Jam, but is not consolidated in a single place. Some of it is missing from the official documentation altogether. We hope it will be useful to anyone wishing to become familiar with Jam and the Boost build system.
-
Jam
rules
are actually simple procedural entities. Think of them as functions. Arguments are separated by colons. -
A Jam target is an abstract entity identified by an arbitrary string. The built-in
DEPENDS
rule creates a link in the dependency graph between the named targets. -
Note that the original Jam documentation for the built-in
INCLUDES
rule is incorrect:INCLUDES targets1 : targets2
causes everything that depends on a member of targets1 to depend on all members of targets2. It does this in an odd way, by tacking targets2 onto a special tail section in the dependency list of everything in targets1. It seems to be OK to create circular dependencies this way; in fact, it appears to be the "right thing to do" when a single build action produces both targets1 and targets2. -
When a rule is invoked, if there are
actions
declared with the same name as the rule, the actions are added to the updating actions for the target identified by the rule’s first argument. It is actually possible to invoke an undeclared rule if corresponding actions are declared: the rule is treated as empty. -
Targets (other than
NOTFILE
targets) are associated with paths in the file system through a process called binding. Binding is a process of searching for a file with the same name as the target (sans grist), based on the settings of the target-specificSEARCH
andLOCATE
variables. -
In addition to local and global variables, jam allows you to set a variable
on
a target. Target-specific variable values can usually not be read, and take effect only in the following contexts:-
In updating actions, variable values are first looked up
on
the target named by the first argument (the target being updated). Because Jam builds its entire dependency tree before executing actions, Jam rules make target-specific variable settings as a way of supplying parameters to the corresponding actions. -
Binding is controlled entirely by the target-specific setting of the
SEARCH
andLOCATE
variables, as described here. -
In the special rule used for header file scanning, variable values are first looked up
on
the target named by the rule’s first argument (the source file being scanned).
-
-
The "bound value" of a variable is the path associated with the target named by the variable. In build actions, the first two arguments are automatically replaced with their bound values. Target-specific variables can be selectively replaced by their bound values using the
bind
action modifier. -
Note that the term "binding" as used in the Jam documentation indicates a phase of processing that includes three sub-phases: binding (yes!), update determination, and header file scanning. The repetition of the term "binding" can lead to some confusion. In particular, the Modifying Binding section in the Jam documentation should probably be titled "Modifying Update Determination".
-
"Grist" is just a string prefix of the form <characters>. It is used in Jam to create unique target names based on simpler names. For example, the file name
test.exe
may be used by targets in separate sub-projects, or for the debug and release variants of the "same" abstract target. Each distinct target bound to a file called "test.exe" has its own unique grist prefix. The Boost build system also takes full advantage of Jam’s ability to divide strings on grist boundaries, sometimes concatenating multiple gristed elements at the beginning of a string. Grist is used instead of identifying targets with absolute paths for two reasons:-
The location of targets cannot always be derived solely from what the user puts in a Jamfile, but sometimes depends also on the binding process. Some mechanism to distinctly identify targets with the same name is still needed.
-
Grist allows us to use a uniform abstract identifier for each built target, regardless of target file location (as allowed by setting ALL_LOCATE_TARGET).
-
-
When grist is extracted from a name with $(var:G), the result includes the leading and trailing angle brackets. When grist is added to a name with
$(var:G=expr)
, existing grist is first stripped. Then, ifexpr
is non-empty, leading <s and trailing >s are added if necessary to form an expression of the form <expr2>; <expr2> is then prepended. -
When Jam is invoked it imports all environment variable settings into corresponding Jam variables, followed by all command-line (-s…) variable settings. Variables whose name ends in PATH, Path, or path are split into string lists on OS-specific path-list separator boundaries (e.g. ":" for UNIX and ";" for Windows). All other variables are split on space (" ") boundaries. Boost Jam modifies that behavior by allowing variables to be quoted.
-
A variable whose value is an empty list or which consists entirely of empty strings has a negative logical value. Thus, for example, code like the following allows a sensible non-empty default which can easily be overridden by the user:
MESSAGE ?\= starting jam... ; if $(MESSAGE) { ECHO The message is: $(MESSAGE) ; }
If the user wants a specific message, he invokes jam with
-sMESSAGE=message text
. If he wants no message, he invokes jam with-sMESSAGE=
and nothing at all is printed. -
The parsing of command line options in Jam can be rather unintuitive, with regards to how other Unix programs accept options. There are two variants accepted as valid for an option:
-
-xvalue
, and -
-x value
.
-
13. History
13.1. Version 4.9.4
-
Fix crash on some platforms/compilers from invalid garbage reads of varargs end marker being an
int
instead of anullptr
. -
Don’t force Windows path separators for GCC when on Windows. As it confuses Cygwin GCC’s relative include path handling. — René Ferdinand Rivera Morell
-
Added
common-requirements
to project declaration to shorthand as declaring the same for bothrequirements
andusage-requirements
. — René Ferdinand Rivera Morell -
Add to pass in targets to project
explicit
rule to reduce duplication ofexplicit
targets when there are many. — René Ferdinand Rivera Morell -
Make coverage feature non-incidental and link-incompatible. — Thomas Brown
-
Use PATH-based lookup for
sh
. For things such as Gentoo Prefix, we want to use the Bourne shell from the prefix and not the potentially ancient version from the main system. — David Seifert
13.2. Version 4.9.3
-
Updated cxxstd for 23 and 26 versions of recent gcc and clang. (#184) — Andrey Semashev
13.4. Version 4.9.1
-
Fix bad calculation of initial dev-only path to bootstrap file within the b2 dev tree. — René Ferdinand Rivera Morell
-
Fix bad path calculation in final fallback for loading bootstrap file from path specified in boost-build rule. — René Ferdinand Rivera Morell
13.5. Version 4.9.0
This release has mostly internal cleanups and restructuring. The most
significant being: fixing all memory leaks, automatic build system
startup with the boost-build
rule, the Jam Python interfaces, and
the unmaintained Python build system port.
-
Add
minimal
anddebug
options foroptimization
feature. — René Ferdinand Rivera Morell -
Add Rocket Lake, Alder Lake, Sapphire Rapids and Zen 3 instruction sets. — Andrey Semashev
-
Remove all, on-exit, memory leaks and fix all ASAN errors. — René Ferdinand Rivera Morell
-
Remove use of
boost-build.jam
as a initialization configuration file. — René Ferdinand Rivera Morell -
Remove the incomplete build system port and Jam engine Python support extensions. — René Ferdinand Rivera Morell
-
Fix not being able to do combined arm+x86 builds on macOS with
darwin
andclang
toolsets. — René Ferdinand Rivera Morell -
Fix not being able to do cross-compiles on macOS with
clang
toolset. — René Ferdinand Rivera Morell -
Fix errors when collecting a large number of object files with long names into a static archive for
gcc
andclang
toolsets. — René Ferdinand Rivera Morell -
Fix detection of QCC in
build.sh
engine build script. — René Ferdinand Rivera Morell -
Fix missing assembly flags for intel-win toolset. — René Ferdinand Rivera Morell
-
Fix possible command line length limit exceeded error with msvc toolset for link actions. — René Ferdinand Rivera Morell
-
New: Add a "t" mode to
FILE_OPEN
built-in rule that gives one the contents of a file when evaluated. — René Ferdinand Rivera Morell
|
⚠
|
This release removes the use of boost-build.jam and the
boost-build rule for initialization. The boost-build.jam is still
searched for and loaded to not break existing operations. But is considered
deprecated and will be removed in a future release.
|
13.6. Version 4.8.2
-
Fix crash on exit cleanup of target lists caused by recursive destruction and incorrect target list pop unlinking. — René Ferdinand Rivera Morell
13.7. Version 4.8.1
-
Fix build of engine on old macOS/XCode versions prior to 9.0 because of missing
EXIT_SUCCESS
andEXIT_FAILURE
macros. — René Ferdinand Rivera Morell
13.8. Version 4.8.0
-
New: Add support for LoongArch. — Zhang Na
-
Change engine build to use static Intel libs if available instead of C++ runtime static libs to fix systems where the static C++} runtime is not available. — Alain Miniussi
-
Reorder msvc
cflags
andcxxflags
, and addcompileflags
, to fix inability to override flags by users. — Peter Dimov -
Don’t quote
RPATH
onclang-linux
to fix use of double-quotes to make it possible to use$ORIGIN
. — Dimitry Andric -
Fix
b2
executable detection on kFreeBSD. — Laurent Bigonville -
Add
.ipp
extension to header scanning and a valid C++ file. — Jim King -
Fix missing install targets when
build=no
is in source target usage requirements. — Dmitry Arkhipov -
Add some future versions of C++ to
cxxstd
feature. — René Ferdinand Rivera Morell -
Fix many memory leaks in engine. — René Ferdinand Rivera Morell
-
Change
abort
/exit
calls to clean exception handling to allow for memory cleanup in engine. — René Ferdinand Rivera Morell
13.9. Version 4.7.2
-
Fix errors configuring intel-linux toolset if icpx is not in the PATH but icpc is in the PATH. — Mark E. Hamilton
-
Add
cxxstd=20
to msvc toolset now that VS 2019 onward supports it. — Peter Dimov
13.11. Version 4.7.0
Many, many fixes and internal cleanups in this release. But also adding auto-detection and bootstrap for VS 2022 preview toolset.
-
New: Add vc143, aka VS2022, aka cl.exe 17.x toolset support. Includes building engine and automatic detection of the prerelease toolset. — Sergei Krivonos
-
Allow alias targets to continue even if
<build>no
is in the usage requirement. Which allows composition of alias targets that may contain optional targets, like tests. — Dmitry Arkhipov -
Fix use of
JAMSHELL
in gcc toolset. — René Ferdinand Rivera Morell -
Fix compiling b2 enging such that it works when run in cross-architecture emulation context. I.e. when running arm binaries in QEMU 64 bit host. — René Ferdinand Rivera Morell
-
Default to 64bit MSVC on 64 bit hosts. — Matt Chambers
-
Remove
/NOENTRY
option for resource only DLLs to allow correct linking. — gnaggnoyil -
Fix redefinition error of
unix
when compiling engine on OpenBSD. — Brad Smith -
Fix building with clang on iOS and AppleTV having extra unrecognized compiler options. — Konstantin Ivlev
-
Add missing Boost.JSON to
boost
support module. — Dmitry Arkhipov -
Add arm/arm64 target support in clang-win toolset. — Volo Zyko
-
Avoid warnings about threading model for qt5. — psandana
-
Unify Clang and GCC PCH creation. — Nikita Kniazev
-
Move Objective-C support to GCC toolset. — Nikita Kniazev
-
Support values for instruction-set feature for Xilinx ZYNQ. — Thomas Brown
-
MIPS: add generic mips architecture. — YunQiang Su
-
Fix preprocessing on MSVC compiler. — Nikita Kniazev
13.12. Version 4.6.1
-
Fix building b2 engine with cygwin64. — René Ferdinand Rivera Morell
-
Fix version detection of clang toolset from compiler exec. — Nikita Kniazev
13.13. Version 4.6.0
This release wraps up a few new features that make using some toolsets easier
(thanks to Nikita). It’s now also possible to specify empty flags features on
the command line, like cxxfalgs=
, and have those be ignored. This helps to
make CI scripts shorter as they don’t need to handle those cases specially.
And as usual there are many bug fixes and adjustments. Thanks to everyone who
contributed to this release.
-
New: Allow clang toolset to be auto-configured to a specific version by using
toolset=clang-xx
on the command line. — Nikita Kniazev -
New: Include pch header automatically and on-demand on gcc and msvc toolset to mirror clang functionality. — Nikita Kniazev
-
New: Features that are narked as 'free' and 'optional' will now be ignored when the value specified on the command line is empty. Hence once can specify
cxxflags=
on the command line without errors. — René Ferdinand Rivera Morell -
Preserve
bootstrap.sh
invoke arguments to forward to thebuild.sh
script. — tkoecker -
Remove use of
local
inbuils.sh
to be compatible with some, not fully capable, shells. — Tanzinul Islam -
Workaround shell array ref error in
build.sh
on busybox shells. — tkoecker -
Check for needing
-pthread
to build engine with gcc on some platforms. — tkoecker -
Default to using clang on MacOS. — Stéphan Kochen
-
Add
/python//numpy
target to use as a dependency to communicate version specific properties. — Peter Dimov -
Add default value for cxx and cxxflags from env vars
CXX
andCXXFLAGS
when using the customcxx
toolset to build the engine. — Samuel Debionne and René Ferdinand Rivera Morell -
Fix detection of
intel-linux
toolset installation when only the compiler executable is in thePATH
. — René Ferdinand Rivera Morell -
Fix
b2
executable path determination for platforms that don’t have a native method of getting the path to executables, like OpenBSD. — René Ferdinand Rivera Morell -
Fix
property.find
error message. — Thomas Brown
13.14. Version 4.5.0
Some minor fixes to improve some old issues.
-
Reenable ability of generators to return
property-set
as first item. — Andrew McCann -
Fix examples to return 0 on success. — Mateusz Łoskot
-
Handle spaces in CXX path in
config_toolset.bat
. -
Fix Conan b2 generator link, and pkg-config doc build error. — René Ferdinand Rivera Morell
13.15. Version 4.4.2
This release is the first of the new home for B2 at Build Frameworks Group.
-
Change references in documentation and sources of boost.org to point at equivalent bfgroup resources. — René Ferdinand Rivera Morell
-
New theme for B2 site and documentation. — René Ferdinand Rivera Morell
13.16. Version 4.4.1
Minor patch to correct missing fix for macOS default engine compiler.
-
Fix engine build defaulting to gcc instead of clang on macOS/Xcode. — René Ferdinand Rivera Morell
13.17. Version 4.4.0
Along with a variety of fixes this version introduces "dynamic" response file support for some toolsets. This means that under most circumstances, if supported by the toolset, response files are not generated. Instead the command is expanded to include the options directly.
-
New: Add
response-file
feature to control the kind of response file usage in toolset action. — René Ferdinand Rivera Morell -
New: Add
:O=value
variable modifier for@()
expansion. — René Ferdinand Rivera Morell -
New: Add
:⇐value
and:>=value
variable modifiers for prefix and postfix values after the complete expansion of variable references. — René Ferdinand Rivera Morell -
New: Implement PCH on clang-win and clang-darwin. — Nikita Kniazev
-
New: Add support for Intel oneAPI release to intel-linux toolset. — René Ferdinand Rivera Morell
-
New: Add support for Intel oneAPI release to intel-windows toolset. — Edward Diener
-
Remove one at time linking limit. Once upon a time this was a performance tweak as hardware and software was not up to doing multiple links at once. Common setups are better equipped. — René Ferdinand Rivera Morell
-
Fix building engine with GCC on AIX. — René Ferdinand Rivera Morell
-
Support building engine as either 32 or 64 bit addressing model. — René Ferdinand Rivera Morell
-
Basic support for building b2 engine on GNU/Hurd. — Pino Toscano
-
Update "borland" toolset to bcc32c for building B2. — Tanzinul Islam
-
Ensure Embarcadero toolset name is only "embtc". — Tanzinul Islam
-
Adapt for Emscripten 2.0 change of default behavior for archives. — Basil Fierz
-
Fix path to bootstrap for back compat. — René Ferdinand Rivera Morell
-
Add missing BOOST_ROOT to boot strap search. — René Ferdinand Rivera Morell
-
Fix for engine compile on FreeBSD. — René Ferdinand Rivera Morell
-
Default MSVC to a native platform, and remove ambiguous implicit address-model ARM/ARM64 values. — Nikita Kniazev
-
Fix detection of MIPS32 for b2 engine build. — Ivan Melnikov
-
Enable building b2 engine with clang on Windows. — Gei0r
-
Fix building b2 engine with Intel Linux icpc. — Alain Miniussi
-
Rework
build.sh
to fix many bugs and to avoid use of common env vars. — René Ferdinand Rivera Morell -
Remove limitation of relevant features for configure checks. — René Ferdinand Rivera Morell
-
Reformat configure check output to inform the variants of the checks in a reasonably brief form. — René Ferdinand Rivera Morell
-
Support building engine on Windows Bash with Mingw. — René Ferdinand Rivera Morell
13.18. Version 4.3.0
There are many invidual fixes in this release. Many thanks for the contributions. Special thanks to Nikita for the many improvements to msvc and general plugging of support holes in all the compilers.
There are some notable new features from Dmitry, Edward, and Nkita:
-
New: Add
force-include
feature to include headers before all sources. — Nikita Kniazev -
New: Partial support for Embarcadero C++ compilers based on clang-5. — Edward Diener
-
New: Implement configurable installation prefixes that use features. — Dmitry Arkhipov
-
New: Add
translate-path
feature. The translate-path feature allows for custom path handling, with a provided rule, on a per target basis. This can be used to support custom path syntax. — René Ferdinand Rivera Morell -
New: Add portable B2 system install option. This allows the b2 executable and the build system files to live side by side. And hence to be (re)located anywhere on disk. Soon to be used to supports Windows and other installers. This removes the need for the
boost-build.jam
file for bootstrap. Making it easier for users to get started. — René Ferdinand Rivera Morell -
Unbreak building from VS Preview command prompt. — Marcel Raad
-
Fix compiler version check on macOS darwin toolset. — Bo Anderson
-
Remove pch target naming restriction on GCC. — Nikita Kniazev
-
Select appropriate QNX target platform. — Alexander Karzhenkov
-
Various space & performance improvements to the b2 engine build on Windows. — Nikita Kniazev
-
Fill extra and pedantic warning options for every compiler. — Nikita Kniazev
-
Include OS error reason for engine IO failures. — Nikita Kniazev
-
Use /Zc:inline and /Zc:throwingNew flags for better language conformance. — Nikita Kniazev
-
Add cxxstd value 20 for C++20. — Andrey Semashev
-
Parallel B2 engine compilation on MSVC. — Nikita Kniazev
-
Updated instruction-set feature with new x86 targets. — Andrey Semashev
-
Pass /nologo to rc on Windows compilers. — Nikita Kniazev
-
Fixed negation in conditional properties. — Nikita Kniazev
-
Remove leftover manifest generation early exiting. — Nikita Kniazev
-
Fix timestamp delta calculation. — Nikita Kniazev
-
Add missing assembler options to clang-win.jam, to enable Context to build. — Peter Dimov
-
Updated scarce
:chars
documentation with:BS
example. — Nikita Kniazev -
Fix link statically against boost-python on linux. — Joris Carrier
-
Ongoing cleanup of engine build warnings. — René Ferdinand Rivera Morell
-
Allow self-testing of toolsets that use response files. — René Ferdinand Rivera Morell
-
Port
Jambase
to native C++. Hence removing one of the oldest parts of the original Jam bootstrap process. — René Ferdinand Rivera Morell
13.19. Version 4.2.0
This release is predominantly minor fixes and cleanup of the engine. In particular the bootstrap/build process now clearly communicates C++11 requirement.
-
Add
saxonhe_dir
action. — Richard Hodges -
Add CI testing for historical Boost versions on Windows MSVC. — René Ferdinand Rivera Morell
-
Check for C++11 support when building engine. Including an informative error message as to that fact. — René Ferdinand Rivera Morell
-
Update Jam grammar parser with latest
bison
version. — René Ferdinand Rivera Morell -
Allow root
b2 b2
engine build to work even ifbison
grammar generator is not available. — René Ferdinand Rivera Morell -
Warning free engine build on at least Windows, macOS, and Linux. — René Ferdinand Rivera Morell
-
Sanitize Windows engine build to consistently use ANSI Win32 API. — Mateusz Loskot
-
Fix b2 engine not exiting, with error, early when it detects a Jam language error. — Mateusz Loskot
-
Print help for local modules, i.e. current dir. — Thomas Brown
13.20. Version 4.1.0
Many small bug fixes in this release. But there are some new features also.
There’s now an lto
feature to specify the use of LTO, and what kind. The
existing stdlib
feature now has real values and corresponding options
for some toolsets. But most importantly there’s new documentation for all
the features.
Thank to all the users that contributed to this release with these changes:
-
Support for VS2019 for intel-vin 19.0. — Edward Diener
-
Fix compiler warnings about
-std=gnu11
when buildingb2
on Cygwin. — Andrey Semashev -
Add example of creating multiple PCHs for individual headers. — René Ferdinand Rivera Morell
-
Add QNX threading flags for GCC toolset. — Aurelien Chartier
-
Fix version option for IBM and Sun compilers when building b2 engine — Juan Alday
-
Rename
strings.h
tojam_strings.h
inb2
engine to avoid clash with POSIXstrings.h
header. — Andrey Semashev -
Add options for
cxxstd
feature for IBM compiler. — Edward Diener -
Many fixes to intel-win toolset. — Edwad Diener
-
Add z15 instruction set for gcc based toolsets. — Neale Ferguson
-
Improve using MSVC from a Cygwin shell. — Michael Haubenwallner
-
Add LTO feature and corresponding support for gcc and clang toolsets. — Dmitry Arkhipov
-
Fix errors when a source doesn’t have a type. — Peter Dimov
-
Add documentation for features. — Dmitry Arkhipov
-
Enhance
stdlib
feature, and corresponding documentation, for clang, gcc, and sun toolsets. — Dmitry Arkhipov -
Install rule now makes explicit only the immediate targets it creates. — Dmitry Arkhipov
-
Add armasm (32 and 64) support for msvc toolset. — Michał Janiszewski
-
Fix errors with custom un-versioned gcc toolset specifications. — Peter Dimov
-
Allow arflags override in gcc toolset specifications. — hyc
-
Fix founds libs not making it to the clang-win link command line. — Peter Dimov
-
Updated intel-win toolset to support for Intel C++ 19.1. — Edward Diener
-
Detect difference between MIPS32 and MIPS64 for OS in b2 engine. — YunQiang Su
13.21. Version 4.0.1
This patch release fixes a minor issue when trying to configure toolsets that override the toolset version with a non-version tag. Currently this is only known to be a problem if you: (a) configure a toolset version to something like “tot” (b) in Boost 1.72.0 when it creates cmake install artifacts. Fix for this was provided Peter Dimov.
13.22. Version 4.0.0
After even more years of development the landscape of build systems has changed considerably, and so has the landscape of compilers. This version marks the start of B2 transitioning to a C++ implementation. Initially this means that the engine will be compiled as C++ source but that source is still the base C implementation. Over time it will transform to a C++ code base in both the engine and build system. Some changes in this start:
-
Requires C++ 11 to build engine.
-
Simplified build scripts to make it easier to maintain.
-
Building with C++ optimizations gives an immediate performance improvement.
Other changes in this release:
-
Add support for using prebuilt OpenSSL. — Damian Jarek
-
Define the riscv architecture feature. — Andreas Schwab
-
Add ARM64 as a valid architecture for MSVC. — Marc Sweetgall
-
Set coverage flags, from coverage feature, for gcc and clang. — Damian Jarek
-
Add s390x CPU and support in gcc/clang. — Neale Ferguson
-
Support importing pkg-config packages. — Dmitry Arkhipov
-
Support for leak sanitizer. — Damian Jarek
-
Fix missing
/manifest
option in clang-win to fix admin elevation for exes with "update" in the name. — Peter Dimov -
Add
freertos
toos
feature. — Thomas Brown -
Default parallel jobs (
-jX
) to the available CPU threads. — René Ferdinand Rivera Morell -
Simpler coverage feature. — Hans Dembinski
-
Better stacks for sanitizers. — James E. King III
|
⚠
|
The default number of parallel jobs has changed in this release from "1" to the number of cores. There are circumstances when that default can be larger than the allocated cpu resources, for instance in some virtualized container installs. |


BuildReactor
Rename
Remove
Help
Report a bug
Request new feature
Add
Error getting available projects
URL:
Settings saved


| About Dailyrotten |
|
Feedback
If you like this page, hate it, or would like to suggest changes,
<EMAIL_ADDRESS>is listening. This page
is experimental and somewhat different from what we usually offer, so please
do send your feedback.
Adding Stories
If you are a rotten newshound and you would like to suggest a story,
visit our submit page to
send us the URL. Stories that are accepted will have your name credited.
Viewership
On the first full day this page went live, 100,000 people visited this Rotten
News page. Of course that was the day after the WTC attacks, so that number is
somewhat distorted. Right now this page gets between 50,000 and 75,000 people
every day.
Linking
We encourage everyone to link to this page; if you like it, others probably
will as well.
Other Rotten
Rotten
Gaping Maw
Celebrity Morgue
Mugshots
Rotten Store
Shockumentary
Rate My Poo
Rate My Kitten
Rate My Finger
Penny Postcards
Phallic
Dr. Sputnik
Boners
Dead Pool
NNDB
Home
Make Dailyrotten your start page
|
|
|
May 20, 2003
California tracking activists in terror database
Oakland Tribune | Submitted by: Soylent
"CATIC -- touted as a national model for intelligence sharing and a centerpiece of Gov. Gray Davis and Attorney General Bill Lockyer's 2002 re-election bids -- has quietly gathered and analyzed information on activists of various stripes almost since its creation." How can they possibly justify this?  Or, as one douchebag puts it: "I've heard terrorism described as anything that is violent or has an economic impact, and shutting down a port certainly would have some economic impact. Terrorism isn't just bombs going off and killing people."  The embryonic LifeLog program would dump everything an individual does into a giant database: every e-mail sent or received, every picture taken, every Web page surfed, every phone call made, every TV show watched, every magazine read." Great. Just great.
|
|
Read article...
|
|
The problem of glue-huffing, armed Iraqi street urchins
BBC | Submitted by: Jim Jones
"Until sanctions began following the first Gulf War, the problem of street kids -- homeless, hungry, often drug-addicted children roaming the streets of Baghdad -- was very small. But since 1991 a great number have been abandoned by parents too poor to feed them, and the numbers grew dramatically during the conflict earlier this year, after looters attacked orphanages following the fall of Baghdad. ... Most of them are thieves.  With world's greatest photo.
|
|
Read article...
|
|
Filipinos unhappy about drinking corpse broth
Wire Services | Submitted by: Bama62
"Millions of people in Manila have been drinking super-chlorinated water this week as the body of a teenager remained stubbornly stuck in a major supply pipe. ... The company has insisted the water supply is safe as it tries to dislodge the body."
|
|
Read article...
|
|
Leaked memos show Congressional infighting post 9-11
capitolhillblue.com | Submitted by: Ann Onymous
"Nearly six years before the Sept. 11 attacks, the Senate Judiciary Committee chairman was told by his senior staff that the FBI and other government agencies had missed warning signs about the 1993 World Trade Center bombing and were ill-prepared to prevent future domestic terrorist attacks, memos show. Sen. Orrin G. Hatch, R-Utah, whose committee oversees federal law enforcement, approved holding investigative hearings about the information, but they never took place, the memos show. ... Hatch preferred not to air the FBI's problems in public. 'His solution to problems within the FBI is to send more money, create more bureaucracy and give them more authority to trample our civil liberties... That is not oversight.  It is impossible to verify some of the more extreme claims -- for example that the ethnic Lendu militia have eaten the hearts of Hema victims or worn their intestines as a grisly headdress." Locals are begging the UN to send peacekeeping troops, but nobody really expects that to happen anytime soon. The United Nations is all tuckered out from its noninvolvement in the Iraq War.
|
|
Read article...
|
|
Just can't keep "nigger" off the map
Reuters | Submitted by: Jim Jones
"Nigger Jim Hammock Bridge in Florida's Hendry County is just one of 144 places throughout the United States whose name or an official version of it includes the derogatory term for black people, a term seen as the ultimate, signature word for racism in America. ... Most of them label bodies of water -- streams, bays, reservoirs, creeks and lakes. Others are summits, valleys, trails or mines. Maryland has an island called Negro Island or Nigger Island in Wicomico County. Washington state has a Nigger Creek in Chelan County, according to the federal database." Yeah, well... what about Skinhead Junction in Boise, or Poor White Trash Bluffs outside Bakersfield? Okay, I just made those up.
|
|
Read article...
|
|
Chimps are now humans
Discovery Channel | Submitted by: Soylent
"Chimpanzees share 99.4 percent of functionally important DNA with humans and belong in our genus, Homo, according to a recent genetic study. Previous studies put the genetic similarity between humans and chimps at 95 to 99 percent, so the new figure suggests chimps and humans are even more closely related than previously thought.
...
[T]he DNA information, combined with the ancestral links, should result in a new family tree, with the genus Homo including humans, common chimpanzees, and bonobo chimpanzees."
|
|
Read article...
|
|
Employee fired via SMS
beaufortgazette.com | Submitted by: Reid Fleming
"A Sydney traffic controller sued his former employer for unfair dismissal Tuesday, claiming the he was sacked via mobile phone text message from a company director." Apparently the message read:
"Its official, you no longer work for JNI Traffic Control and u have forfided any arrangements made."
At least they could have spellchecked the damn thing.
|
|
Read article...
|
|
Wife takes out insurance policy on her looks
BBC | Submitted by: Bored_technician
"A woman who is worried her husband might leave her if she loses her looks has insured her face for £100,000. Nicole Jones, of Bristol, is paying £200 a year for the policy, which will pay out if she is no longer deemed to be attractive. She took the policy out as a birthday present for her husband Simon, who had always joked that he would leave her if she let herself go as she got older."
|
|
Read article...
|
|
Marines kicked out of Iraqi city for suspicious grafitti
Observer | Submitted by: Ann Onymous
"One of the greatest wonders of civilisation, and probably the world's most ancient structure - the Sumerian city of Ur in southern Iraq - has been vandalised by American soldiers and airmen, according to aid workers in the area. They claim that US forces have spray-painted the remains with graffiti and stolen kiln-baked bricks made millennia ago. As a result, the US military has put the archaeological treasure, which dates back 6,000 years, off-limits to its own troops." One thing bothers me, though. "One graffiti reads: 'SEMPER FE' - Always Faithful - the motto of the Marines." Except that even the dumbest jarhead knows that it's actually "Semper Fi" -- short for Semper Fidelis.  The court stated that the man had stolen the objects in order to satisfy his anomalous sexual instinct."
|
|
Read article...
|
|
Most retarded jailhouse birthday ever
thedailyitemoflynn.com | Submitted by: Reid Fleming
"In the first incident at 11:20 a.m., Officer Goldstein is seen flicking Austin's ear twice and then slapping the back of Austin's head. Just over an hour later, the tape shows Officers Goldstein and Lavoie handcuffing Austin and forcing him to eat cake with his face down against the plate. Then at 2:20 p.m., the officers again handcuffed Austin and forced him to eat the cake, which was brought in for Kostan's birthday."
|
|
Read article...
|
|
|
|
|


MOMETASONE FUROATE - mometasone furoate cream
STAT RX USA LLC
Mometasone Furoate Cream 0.1% contains mometasone furoate, USP for dermatologic use. Mometasone furoate is a synthetic corticosteroid with anti-inflammatory activity.
Chemically, mometasone furoate is 9α,21-Dichloro-11β,17-dihydroxy-16α-methylpregna-1,4-diene-3,20-dione 17-(2-furoate), with the empirical formula C27H30CI2O6, a molecular weight of 521.4 and the following structural formula:
Mometasone furoate is a white to off-white powder practically insoluble in water, slightly soluble in octanol, and moderately soluble in ethyl alcohol.
Each gram of Mometasone Furoate Cream 0.1% contains: 1 mg mometasone furoate, USP in a cream base of hexylene glycol, phosphoric acid, propylene glycol stearate, stearyl alcohol and ceteareth-20, titanium dioxide, aluminum starch octenylsuccinate, white wax, white petrolatum, and purified water.
Like other topical corticosteroids, mometasone furoate has anti-inflammatory, antipruritic, and vasoconstrictive properties. The mechanism of the anti-inflammatory activity of the topical steroids, in general, is unclear. However, corticosteroids are thought to act by the induction of phospholipase A2 inhibitory proteins, collectively called lipocortins. It is postulated that these proteins control the biosynthesis of potent mediators of inflammation such as prostaglandins and leukotrienes by inhibiting the release of their common precursor arachidonic acid. Arachidonic acid is released from membrane phospholipids by phospholipase A2.
The extent of percutaneous absorption of topical corticosteroids is determined by many factors including the vehicle and the integrity of the epidermal barrier. Occlusive dressings with hydrocortisone for up to 24 hours have not been demonstrated to increase penetration; however, occlusion of hydrocortisone for 96 hours markedly enhances penetration.
Studies in humans indicate that approximately 0.4% of the applied dose of Mometasone Furoate Cream 0.1% enters the circulation after 8 hours of contact on normal skin without occlusion. Inflammation and/or other disease processes in the skin may increase percutaneous absorption.
Studies performed with Mometasone Furoate Cream 0.1% indicate that it is in the medium range of potency as compared with other topical corticosteroids.
In a study evaluating the effects of mometasone furoate cream on the hypothalamic-pituitary-adrenal (HPA) axis, 15 grams were applied twice daily for 7 days to six adult patients with psoriasis or atopic dermatitis. The cream was applied without occlusion to at least 30% of the body surface. The results show that the drug caused a slight lowering of adrenal corticosteroid secretion.
In a pediatric trial, 24 atopic dermatitis patients, of which 19 patients were age 2 to 12 years, were treated with Mometasone Furoate Cream 0.1% once daily. The majority of patients cleared within 3 weeks.
Ninety-seven pediatric patients ages 6 to 23 months, with atopic dermatitis, were enrolled in an open-label, hypothalamic-pituitary-adrenal (HPA) axis safety study. Mometasone Furoate Cream 0.1% was applied once daily for approximately 3 weeks over a mean body surface area of 41% (range 15% to 94%). In approximately 16% of patients who showed normal adrenal function by Cortrosyn test before starting treatment, adrenal suppression was observed at the end of treatment with Mometasone Furoate Cream 0.1%. The criteria for suppression were: basal cortisol level of ≤ 5 mcg/dL, 30-minute post-stimulation level of ≤ 18 mcg/dL, or an increase of less than 7 mcg/dL. Followup testing 2 to 4 weeks after stopping treatment, available for 5 of the patients, demonstrated suppressed HPA axis function in one patient, using these same criteria.
Mometasone Furoate Cream 0.1% is a medium potency corticosteroid indicated for the relief of the inflammatory and pruritic manifestations of corticosteroid-responsive dermatoses.
Mometasone Furoate Cream 0.1% may be used in pediatric patients 2 years of age or older, although the safety and efficacy of drug use for longer than 3 weeks have not been established (see PRECAUTIONS – Pediatric Use section). Since safety and efficacy of Mometasone Furoate Cream 0.1% have not been established in pediatric patients below 2 years of age, its use in this age group is not recommended.
Mometasone Furoate Cream 0.1% is contraindicated in those patients with a history of hypersensitivity to any of the components in the preparation.
Systemic absorption of topical corticosteroids can produce reversible hypothalamic-pituitary-adrenal (HPA) axis suppression with the potential for glucocorticosteroid insufficiency after withdrawal of treatment. Manifestations of Cushing’s syndrome, hyperglycemia, and glucosuria can also be produced in some patients by systemic absorption of topical corticosteroids while on treatment.
Patients applying a topical steroid to a large surface area or to areas under occlusion should be evaluated periodically for evidence of HPA axis suppression. This may be done by using the ACTH stimulation, A.M. plasma cortisol, and urinary free cortisol tests.
In a study evaluating the effects of mometasone furoate cream on the hypothalamic-pituitary-adrenal (HPA) axis, 15 grams were applied twice daily for 7 days to six adult patients with psoriasis or atopic dermatitis. The cream was applied without occlusion to at least 30% of the body surface. The results show that the drug caused a slight lowering of adrenal corticosteroid secretion.
If HPA axis suppression is noted, an attempt should be made to withdraw the drug, to reduce the frequency of application, or to substitute a less potent corticosteroid. Recovery of HPA axis function is generally prompt upon discontinuation of topical corticosteroids. Infrequently, signs and symptoms of glucocorticosteroid insufficiency may occur requiring supplemental systemic corticosteroids. For information on systemic supplementation, see Prescribing Information for those products.
Pediatric patients may be more susceptible to systemic toxicity from equivalent doses due to their larger skin surface to body mass ratios (see PRECAUTIONS – Pediatric Use).
If irritation develops, Mometasone Furoate Cream 0.1% should be discontinued and appropriate therapy instituted. Allergic contact dermatitis with corticosteroids is usually diagnosed by observing a failure to heal rather than noting a clinical exacerbation as with most topical products not containing corticosteroids. Such an observation should be corroborated with appropriate diagnostic patch testing.
If concomitant skin infections are present or develop, an appropriate antifungal or antibacterial agent should be used. If a favorable response does not occur promptly, use of Mometasone Furoate Cream 0.1% should be discontinued until the infection has been adequately controlled.
Patients using topical corticosteroids should receive the following information and instructions:
This medication is to be used as directed by the physician. It is for external use only. Avoid contact with the eyes.
This medication should not be used for any disorder other than that for which it was prescribed.
The treated skin area should not be bandaged or otherwise covered or wrapped so as to be occlusive, unless directed by the physician.
Patients should report to their physician any signs of local adverse reactions.
Parents of pediatric patients should be advised not to use Mometasone Furoate Cream 0.1% in the treatment of diaper dermatitis. Mometasone Furoate Cream 0.1% should not be applied in the diaper area as diapers or plastic pants may constitute occlusive dressing (see DOSAGE and ADMINISTRATION).
This medication should not be used on the face, underarms, or groin areas unless directed by the physician.
As with other corticosteroids, therapy should be discontinued when control is achieved. If no improvement is seen within 2 weeks, contact the physician.
Other corticosteroid-containing products should not be used with Mometasone Furoate Cream 0.1% without first consulting with the physician.
The following tests may be helpful in evaluating patients for HPA axis suppression:
Long-term animal studies have not been performed to evaluate the carcinogenic potential of Mometasone Furoate Cream 0.1%. Long-term carcinogenicity studies of mometasone furoate were conducted by the inhalation route in rats and mice. In a 2-year carcinogenicity study in Sprague-Dawley rats, mometasone furoate demonstrated no statistically significant increase of tumors at inhalation doses up to 67 mcg/kg (approximately 0.04 times the estimated maximum clinical topical dose from Mometasone Furoate Cream 0.1% on a mcg/m2 basis). In a 19-month carcinogenicity study in Swiss CD-1 mice, mometasone furoate demonstrated no statistically significant increase in the incidence of tumors at inhalation doses up to 160 mcg/kg (approximately 0.05 times the estimated maximum clinical topical dose from Mometasone Furoate Cream 0.1% on a mcg/m2 basis).
Mometasone furoate increased chromosomal aberrations in an in vitro Chinese hamster ovary cell assay, but did not increase chromosomal aberrations in an in vitro Chinese hamster lung cell assay. Mometasone furoate was not mutagenic in the Ames test or mouse lymphoma assay, and was not clastogenic in an in vivo mouse micronucleus assay, a rat bone marrow chromosomal aberration assay, or a mouse male germ-cell chromosomal aberration assay. Mometasone furoate also did not induce unscheduled DNA synthesis in vivo in rat hepatocytes.
In reproductive studies in rats, impairment of fertility was not produced in male or female rats by subcutaneous doses up to 15 mcg/kg (approximately 0.01 times the estimated maximum clinical topical dose from Mometasone Furoate Cream 0.1% on a mcg/m2 basis).
Corticosteroids have been shown to be teratogenic in laboratory animals when administered systemically at relatively low dosage levels. Some corticosteroids have been shown to be teratogenic after dermal application in laboratory animals.
When administered to pregnant rats, rabbits, and mice, mometasone furoate increased fetal malformations. The doses that produced malformations also decreased fetal growth, as measured by lower fetal weights and/or delayed ossification. Mometasone furoate also caused dystocia and related complications when administered to rats during the end of pregnancy.
In mice, mometasone furoate caused cleft palate at subcutaneous doses of 60 mcg/kg and above. Fetal survival was reduced at 180 mcg/kg. No toxicity was observed at 20 mcg/kg. (Doses of 20, 60, and 180 mcg/kg in the mouse are approximately 0.01, 0.02, and 0.05 times the estimated maximum clinical topical dose from Mometasone Furoate Cream 0.1% on a mcg/m2 basis.)
In rats, mometasone furoate produced umbilical hernias at topical doses of 600 mcg/kg and above. A dose of 300 mcg/kg produced delays in ossification, but no malformations. (Doses of 300 and 600 mcg/kg in the rat are approximately 0.2 and 0.4 times the estimated maximum clinical topical dose from Mometasone Furoate Cream 0.1% on a mcg/m2 basis.)
In rabbits, mometasone furoate caused multiple malformations (eg, flexed front paws, gallbladder agenesis, umbilical hernia, hydrocephaly) at topical doses of 150 mcg/kg and above (approximately 0.2 times the estimated maximum clinical topical dose from Mometasone Furoate Cream 0.1% on a mcg/m2 basis). In an oral study, mometasone furoate increased resorptions and caused cleft palate and/or head malformations (hydrocephaly and domed head) at 700 mcg/kg. At 2800 mcg/kg most litters were aborted or resorbed. No toxicity was observed at 140 mcg/kg. (Doses at 140, 700, and 2800 mcg/kg in the rabbit are approximately 0.2, 0.9, and 3.6 times the estimated maximum clinical topical dose from Mometasone Furoate Cream 0.1% on a mcg/m2 basis.)
When rats received subcutaneous doses of mometasone furoate throughout pregnancy or during the later stages of pregnancy, 15 mcg/kg caused prolonged and difficult labor and reduced the number of live births, birth weight, and early pup survival. Similar effects were not observed at 7.5 mcg/kg. (Doses of 7.5 and 15 mcg/kg in the rat are approximately 0.005 and 0.01 times the estimated maximum clinical topical dose from Mometasone Furoate Cream 0.1% on a mcg/m2 basis.)
There are no adequate and well-controlled studies of teratogenic effects from topically applied corticosteroids in pregnant women. Therefore, topical corticosteroids should be used during pregnancy only if the potential benefit justifies the potential risk to the fetus.
Systemically administered corticosteroids appear in human milk and could suppress growth, interfere with endogenous corticosteroid production, or cause other untoward effects. It is not known whether topical administration of corticosteroids could result in sufficient systemic absorption to produce detectable quantities in human milk. Because many drugs are excreted in human milk, caution should be exercised when Mometasone Furoate Cream 0.1% is administered to a nursing woman.
Mometasone Furoate Cream 0.1% may be used with caution in pediatric patients 2 years of age or older, although the safety and efficacy of drug use for longer than 3 weeks have not been established. Use of Mometasone Furoate Cream 0.1% is supported by results from adequate and well controlled studies in pediatric patients with corticosteroid responsive dermatoses. Since safety and efficacy of Mometasone Furoate Cream 0.1% have not been established in pediatric patients below 2 years of age, its use in this age group is not recommended.
Mometasone Furoate Cream 0.1% caused HPA axis suppression in approximately 16% of pediatric patients ages 6 to 23 months, who showed normal adrenal function by Cortrosyn test before starting treatment, and were treated for approximately 3 weeks over a mean body surface area of 41% (range 15% to 94%). The criteria for suppression were: basal cortisol level of ≤ 5 mcg/dL, 30-minute post-stimulation level of ≤ 18 mcg/dL, or an increase of less than 7 mcg/dL. Follow-up testing 2 to 4 weeks after study completion, available for 5 of the patients, demonstrated suppressed HPA axis function in one patient, using these same criteria. Long-term use of topical corticosteroids has not been studied in this population (see CLINICAL PHARMACOLOGY – Pharmacokinetics section).
Because of a higher ratio of skin surface area to body mass, pediatric patients are at a greater risk than adults of HPA axis suppression and Cushing’s syndrome when they are treated with topical corticosteroids. They are, therefore, also at greater risk of adrenal insufficiency during and/or after withdrawal of treatment. Pediatric patients may be more susceptible than adults to skin atrophy, including striae, when they are treated with topical corticosteroids. Pediatric patients applying topical corticosteroids to greater than 20% of body surface are at higher risk of HPA axis suppression.
HPA axis suppression, Cushing’s syndrome, linear growth retardation, delayed weight gain, and intracranial hypertension have been reported in pediatric patients receiving topical corticosteroids. Manifestations of adrenal suppression in children include low plasma cortisol levels, and an absence of response to ACTH stimulation. Manifestations of intracranial hypertension include bulging fontanelles, headaches, and bilateral papilledema.
Mometasone Furoate Cream 0.1% should not be used in the treatment of diaper dermatitis.
Clinical studies of Mometasone Furoate Cream 0.1% included 190 subjects who were 65 years of age and over and 39 subjects who were 75 years of age and over. No overall differences in safety or effectiveness were observed between these subjects and younger subjects, and other reported clinical experience has not identified differences in responses between the elderly and younger patients. However, greater sensitivity of some older individuals cannot be ruled out.
In controlled clinical studies involving 319 patients, the incidence of adverse reactions associated with the use of Mometasone Furoate Cream 0.1% was 1.6%. Reported reactions included burning, pruritus, and skin atrophy. Reports of rosacea associated with the use of Mometasone Furoate Cream 0.1% have also been received. In controlled clinical studies (n=74) involving pediatric patients 2 to 12 years of age, the incidence of adverse experiences associated with the use of Mometasone Furoate Cream 0.1% was approximately 7%. Reported reactions included stinging, pruritus, and furunculosis.
The following adverse reactions were reported to be possibly or probably related to treatment with Mometasone Furoate Cream 0.1% during clinical studies in 4% of 182 pediatric patients 6 months to 2 years of age: decreased glucocorticoid levels, 2; paresthesia, 2; folliculitis, 1; moniliasis, 1; bacterial infection, 1; skin depigmentation, 1. The following signs of skin atrophy were also observed among 97 patients treated with Mometasone Furoate Cream 0.1% in a clinical study: shininess 4; telangiectasia 1, loss of elasticity 4, loss of normal skin markings 4, thinness 1, and bruising 1. Striae were not observed in this study.
The following additional local adverse reactions have been reported infrequently with topical corticosteroids, but may occur more frequently with the use of occlusive dressings. These reactions are listed in an approximate decreasing order of occurrence: irritation, dryness, folliculitis, hypertrichosis, acneiform eruptions, hypopigmentation, perioral dermatitis, allergic contact dermatitis, secondary infection, striae, and miliaria.
Topically applied Mometasone Furoate Cream 0.1% can be absorbed in sufficient amounts to produce systemic effects (see PRECAUTIONS section).
Apply a thin film of Mometasone Furoate Cream 0.1% to the affected skin areas once daily. Mometasone Furoate Cream 0.1% may be used in pediatric patients 2 years of age or older. Since safety and efficacy of Mometasone Furoate Cream 0.1% have not been adequately established in pediatric patients below 2 years of age, its use in this age group is not recommended (see PRECAUTIONS – Pediatric Use section).
As with other corticosteroids, therapy should be discontinued when control is achieved. If no improvement is seen within 2 weeks, reassessment of diagnosis may be necessary. Safety and efficacy of Mometasone Furoate Cream 0.1% in pediatric patients for more than 3 weeks of use have not been established. Mometasone Furoate Cream 0.1% should not be used with occlusive dressings unless directed by a physician. Mometasone Furoate Cream 0.1% should not be applied in the diaper area if the child still requires diapers or plastic pants as these garments may constitute occlusive dressing.
Mometasone Furoate Cream 0.1% is supplied in 15 g (NDC 67405-100-15) and 45 g (NDC 67405-100-45) tubes; boxes of one.
Store at 25°C (77°F); excursions permitted to 15-30°C (59-86°F)
[See USP Controlled Room Temperature]
Manufactured for
HARRIS Pharmaceutical, Inc.
Fort Myers, FL 33908
877-RX4-DERM • www.HarrisPharmaceutical.com
By G and W Laboratories, Inc.
South Plainfield, NJ 07080
|
MOMETASONE FUROATE
mometasone furoate cream | ||||||||||||||||||||
| ||||||||||||||||||||
| ||||||||||||||||||||
| ||||||||||||||||||||
| ||||||||||||||||||||
|
| Labeler - STAT RX USA LLC (786036330) |
| Establishment | |||
| Name | Address | ID/FEI | Business Operations |
|---|---|---|---|
| STAT RX USA LLC | 786036330 | relabel, repack |


|
lwIP
2.1.3
Lightweight IP stack
|
Macros | |
| #define | LWIP_MPU_COMPATIBLE 0 |
| #define | LWIP_TCPIP_CORE_LOCKING 1 |
| #define | LWIP_TCPIP_CORE_LOCKING_INPUT 0 |
| #define | SYS_LIGHTWEIGHT_PROT 1 |
| #define | LWIP_ASSERT_CORE_LOCKED() |
| #define | LWIP_MARK_TCPIP_THREAD() |
| #define LWIP_ASSERT_CORE_LOCKED | ( | ) |
Macro/function to check whether lwIP's threading/locking requirements are satisfied during current function call. This macro usually calls a function that is implemented in the OS-dependent sys layer and performs the following checks:
| #define LWIP_MARK_TCPIP_THREAD | ( | ) |
Called as first thing in the lwIP TCPIP thread. Can be used in conjunction with LWIP_ASSERT_CORE_LOCKED to check core locking.
| #define LWIP_MPU_COMPATIBLE 0 |
LWIP_MPU_COMPATIBLE: enables special memory management mechanism which makes lwip able to work on MPU (Memory Protection Unit) system by not passing stack-pointers to other threads (this decreases performance as memory is allocated from pools instead of keeping it on the stack)
| #define LWIP_TCPIP_CORE_LOCKING 1 |
LWIP_TCPIP_CORE_LOCKING Creates a global mutex that is held during TCPIP thread operations. Can be locked by client code to perform lwIP operations without changing into TCPIP thread using callbacks. See LOCK_TCPIP_CORE() and UNLOCK_TCPIP_CORE(). Your system should provide mutexes supporting priority inversion to use this.
| #define LWIP_TCPIP_CORE_LOCKING_INPUT 0 |
LWIP_TCPIP_CORE_LOCKING_INPUT: when LWIP_TCPIP_CORE_LOCKING is enabled, this lets tcpip_input() grab the mutex for input packets as well, instead of allocating a message and passing it to tcpip_thread.
ATTENTION: this does not work when tcpip_input() is called from interrupt context!
| #define SYS_LIGHTWEIGHT_PROT 1 |
SYS_LIGHTWEIGHT_PROT==1: enable inter-task protection (and task-vs-interrupt protection) for certain critical regions during buffer allocation, deallocation and memory allocation and deallocation. ATTENTION: This is required when using lwIP from more than one context! If you disable this, you must be sure what you are doing!


Instructions: Each turn, the player can move any one token to an unoccupied adjacent space or jump over exactly one token (of either color) to move to the unoccupied space. Click on a token to move it to the unoccupied space.
Objective: Switch the pieces so that the blue tokens all end up on the left side of the board and the red tokens are on the right — with the middle square again empty — in the fewest number of moves possible.


Character Entities Examples:
- The address of a variable is represented as &a
- 5 < 6
- 10 > 5
- This represents " Double quote "
- This represents ' Single quote '
- One-fifth fraction is represented as ⅕
- The degree is represented as 180°
- The currency of europe is €
- ©Jan 2021,Your Name.All copyrights reserved


Python is an interpreted, high-level, general-purpose programming language. Created by Guido van Rossum and first released in 1991, Python has a design philosophy that emphasizes code readability, notably using significant whitespace. It provides constructs that enable clear programming on both small and large scales. Van Rossum led the language community until July 2018.
Python is dynamically typed and garbage-collected. It supports multiple programming paradigms, including procedural, object-oriented, and functional programming. Python features a comprehensive standard library, and is referred to as "batteries included".
Python interpreters are available for many operating systems. CPython, the reference implementation of Python, is open-source software and has a community-based development model. Python and CPython are managed by the non-profit Python Software Foundation.
Python has a very easy-to-read syntax. Some of Python's syntax comes from C, because that is the language that Python was written in. But Python uses whitespace to delimit code: spaces or tabs are used to organize code into groups. This is different from C. In C, there is a semicolon at the end of each line and curly braces ({}) are used to group code. Using whitespace to delimit code makes Python a very easy-to-read language.
You can use any letter, the special characters "_" and every number provided you do not start with it. White spaces and signs with special meanings in Python, as "+" and "-" are not allowed. I usually use lowercase with words separated by underscores as necessary to improve readability. Remember that variable names are case sensitive.
x = 123 # integer
x = 123L # long integer
x = 3.14 # double float
x = "hello" # string
x = [0,1,2] # list
x = (0,1,2) # tuple
x = open(‘hello.py’, ‘r’) # file
What is namespace: A namespace is a system to have a unique name for each and every object in Python. An object might be a variable or a method. Python itself maintains a namespace in the form of a Python dictionary. Let’s go through an example, a directory-file system structure in computers. Needless to say, that one can have multiple directories having a file with the same name inside of every directory. But one can get directed to the file, one wishes, just by specifying the absolute path to the file. Real-time example, the role of a namespace is like a surname. One might not find a single “Alice” in the class there might be multiple “Alice” but when you particularly ask for “Alice Lee” or “Alice Clark” (with a surname), there will be only one (time being don’t think of both first name and surname are same for multiple students).
On the similar lines, Python interpreter understands what exact method or variable one is trying to point to in the code, depending upon the namespace. So, the division of the word itself gives little more information. Its Name (which means name, an unique identifier) + Space(which talks something related to scope). Here, a name might be of any Python method or variable and space depends upon the location from where is trying to access a variable or a method.
A function is a block of organized, reusable code that is used to perform a single, related action. Functions provide better modularity for your application and a high degree of code reusing.
As you already know, Python gives you many built-in functions like print(), etc. but you can also create your own functions. These functions are called user-defined functions.
def my_function(food):
for x in food:
print(x)
fruits = ["apple", "banana", "cherry"]
my_function(fruits)


|
Elektra
0.8.22
|
This release did not happen yet.
We are proud to release Elektra 0.8.22! In 429 commits, 8 authors changed 548 files with 60369 insertions(+), 6783 deletions(-).
Elektra serves as a universal and secure framework to access configuration settings in a global, hierarchical key database. For more information, visit https://libelektra.org.
For a small demo see here:
You can also read the news on our website
You can also read the FOSDEM interview given recently.
Elektra is now an official part of Homebrew and Alpine Linux.
We are proud to present our new logo. It has a new shape and cooler colors.
Thanks to Philipp Frei!
We also gave the website a new look. It has the colors from the logo and new fonts (Lato and Libre Franklin) that improve readability and add to a unique look. The restructured start page contributes to the new look as well.
We also updated asciinema-player to 2.6.0.
Thanks to Thomas Wahringer.
We also fixed security issues in the Website due to an old version of jquery, thanks to Marvin Mall.
Thanks to Bernhard Denner for keeping our infrastructure running.
dini
is no longer experimental anymore and adds the binary plugin.=
) properly.Thanks to René Schwaiger!
Nevertheless, we did not switch to INI as default format. This has some reasons:
dump
is the better choice: e.g. with kdb editor
you can edit any parts of Elektra with any format (e.g. INI) more safely. (With the INI plugin in some of these situations meta data is wrongly shown.)dump
is easier (especially compared with INI) because the dump
format is recognisable without ambiguity. (Thus the INI file parses nearly any file, it is hard to detect that a file is not INI)But for those who want to switch, the migration will be smooth: The dini
plugin makes sure that old dump files are still being read. Only when writing out configuration files, configuration files are converted to INI. To change to INI during compilation, simply use:
-DKDB_DEFAULT_STORAGE=dini
Or simply switch for your installation with:
sudo kdb change-default-storage dini
You can also mount INI (or dini) as root:
sudo kdb mount default.ini / dini
This release contains an experimental implementation of Elektra's notification feature. This feature enables applications to get updates when configuration is changed at run-time. For more details see the preview tutorial at https://github.com/ElektraInitiative/libelektra/tree/master/doc/tutorials/notifications.md "doc/tutorials/notifications.md"
The Notification API is implemented by a new library called elektra-notification
. To use the library you need the new internalnotification plugin. Since the plugin is experimental it needs to be enabled when building Elektra from source (e.g. by passing -DPLUGINS="ALL;-EXPERIMENTAL;internalnotification"
to cmake
).
New bindings for asynchronous I/O called "I/O bindings" also have been added. These bindings allow Elektra's plugins and other parts to perform asynchronous operations. I/O bindings are opt-in for application developers. New features of Elektra that take advantage of I/O bindings will have fallbacks where viable. These fallbacks will use synchronous I/O thus keeping the status quo.
This release includes an experimental I/O binding for uv. The interface for I/O bindings is currently experimental and might change in the future.
Elektra's notification feature is not complete yet. So called "transport plugins" will be responsible for sending and receiving notifications using different protocols or libraries (like ZeroMQ or D-Bus). These plugins will make use of the new I/O bindings. We plan to introduce the first transport plugins with the next release of Elektra.
A new library called pluginprocess has been added. This library contains functions that aid in executing plugins in a separate process. This child process is forked from Elektra's main process each time such plugin is used and gets closed again afterwards. It uses a simple communication protocol based on a KeySet that gets serialized through a pipe via the dump
plugin to orchestrate the processes.
Such a behavior is useful for plugins which cause memory leaks to be isolated in an own process. Furthermore this is useful for runtimes or libraries that cannot be reinitialized in the same process after they have been used.
The ksLookup (...)
has a new search algorithm, that acts as an alternative to the binary search. The Order Preserving Minimal Perfect Hash Map (OPMPHM) is a non-dynamic, randomized hash map and is very effective for mostly static configurations. The OPMPHM can be enabled for a search by passing the in kdbproposal.h defined option KDB_O_OPMPHM
to the lookup. Be aware that if the KeySet changes often using the OPMPHM might not be a good idea, read more about the OPMPHM.
When you are not sure if the OPMPHM will speed up you searches, wait for the next release, that one will include a hybrid search algorithm that combines the best properties of both search algorithms.
To disable OPMPHM (e.g. on systems with tight memory constraints), you can pass -DENABLE_OPTIMIZATIONS=OFF
We added even more functionality, which could not make it to the highlights:
kdb
tool.~
), and also adds the meta key binary
for such values automatically.We improved the documentation in the following ways:
rlwrap
might be used for kdb shell
.hosts
plugin.debian/copyright
in the debian
branch, thanks to Thomas Wahringer.As always, the ABI and API of kdb.h is fully compatible, i.e. programs compiled against an older 0.8 version of Elektra will continue to work (ABI) and you will be able to recompile programs without errors (API).
We executed old test cases against the latest Elektra version and all tests passed.
In kdbinvoke.h
we changed the API so that elektraInvokeOpen
and elektraInvokeClose
can yield error messages.
We added:
kdbnotification.h
, kdbio.h
, kdbiotest.h
.kdbnotificationplugin.h
, kdbioprivate.h
.mktemp
in check_distribution.sh
to allow parallel run of test cases, thanks to Armin Wurzinger.These notes are of interest for people maintaining packages of Elektra:
dini
is no longer experimental.BINDINGS
now behaves like PLUGINS
By default now all MAINTAINED bindings except EXPERIMENTAL and DEPRECATED are included. For more details see https://github.com/ElektraInitiative/libelektra/tree/master/doc/COMPILE.md "/doc/COMPILE.md". To include both intercept bindings, you now need to write INTERCEPT
, to only include getenv interception intercept_env
. intercept
in lower-case does not work anymore.The following files are new:
libelektra-notification.so
, libelektra-io.so
, libelektra-io-uv.so
, libelektra-pluginprocess.so
kdbgetenv.h
, kdbio.h
, kdbpluginprocess.h
base64/Base64.pdf
getenv
, test_context
, test_fork
, test_getenv
, test_ks_opmphm
, test_opmphm
elektra-io.pc
The following files were removed:
testmod_semlock
These notes are of interest for people developing Elektra:
clang-reformat-5.0
for formatting. Please upgrade your clang.ryzen v2
was added to speed up jenkins build all please
, thanks to Armin Wurzinger.BINDINGS
was greatly improved and the CMake functions were simplified. Bindings now also have a README.md
with meta data. A big thanks to Thomas Wahringer.ELEKTRA_LOG
is only for C/C++.kdberrors.h
in a C++ files now also works, if you do not add the statementbefore you import kdberrors.h
.
Many problems were resolved with the following fixes:
kdb global-umount
also removed other mountpointsYou can download the release from here or GitHub
The hashsums are:
<<scripts/generate-hashsums
>>
The release tarball is also available signed by me using GnuPG from here or GitHub
Already built API-Docu can be found online or GitHub.
Subscribe to the RSS feed to always get the release notifications.
For any questions and comments, please contact the issue tracker on GitHub or me by email using elekt. ra@m arkus -raa b.org
For more information, see https://libelektra.org
Best regards, Elektra Initiative


Scheduler
Home
(current)
Services
Prices
Standard Template
Standard Template 2
Custom Template
Web Development
Sign In
Sign Up
Standard Template
Custom Template
Loading...
Check out your calendars
which one is better?
Calendar 1
Calendar 2
Calendar 3
Scheduler
Get to know us
Our goal is to create software that will make your business more manageable.
For more information »
Contact Us
Software Engineering
1.290 EENGR Bldg.
Edinburg, Tx 78509
P:
(123) 456-7890
E:
rhqj@startup.com


Id: 218
Name: Mechanical Rick
Status: unknown
Species: Robot
Type:
Gender: Male
OriginName: Earth (Replacement Dimension)
OriginUrl: https://rickandmortyapi.com/api/location/20
LocationName: Earth (Replacement Dimension)
LocationUrl: https://rickandmortyapi.com/api/location/20
Image: https://rickandmortyapi.com/api/character/avatar/218.jpeg
Episode: ['https://rickandmortyapi.com/api/episode/23']
Url: https://rickandmortyapi.com/api/character/218
Created: 2017-12-30T14:33:16.920Z


"Just by starting the construction of a temple for Lort, sins committed in seven births will be wiped out and one will deliver his forefathers who are suffering in hellish planets" and who sponsors a temple of Lord Vishnu, gains ten million times the merits accured by Yajna, Austerities, Charities, Pilgrimage and study of Vedas.
- Skanda Purana