nasm macros
Sponsored Links
Sponsored Links
Secleted [ 0 ] software to compare
Results 1 - 15 of about 305
mod_macro 1.1.7
mod_macro is a third-party module to the Apache Http Server, distributed with a BSD-style license like Apache. more>>
mod_macro is a third-party module to the Apache Http Server, distributed with a BSD-style license like Apache.
mod_macro allows the definition and use of macros within apache runtime configuration files. The syntax is a natural extension to apache html-like configuration style.
Examples
Here is a sample use of mod_macro within a configuration file:
## Define a VHost Macro.
< Macro VHost $host $port $dir >
Listen $port
< VirtualHost $host:$port >
DocumentRoot $dir
< Directory $dir >
# do something here...
< /Directory >
# limit access to intranet subdir.
< Directory $dir/intranet >
order deny,allow
deny from all
allow from 10.0.0.0/8
< /Directory >
< /VirtualHost >
< /Macro >
## Use of VHost with different arguments.
Use VHost www.apache.org 80 /projects/apache/web
Use VHost www.perl.com 8080 /projects/perl/web
Use VHost www.ensmp.fr 1234 /projects/mines/web
## Done.
<<lessmod_macro allows the definition and use of macros within apache runtime configuration files. The syntax is a natural extension to apache html-like configuration style.
Examples
Here is a sample use of mod_macro within a configuration file:
## Define a VHost Macro.
< Macro VHost $host $port $dir >
Listen $port
< VirtualHost $host:$port >
DocumentRoot $dir
< Directory $dir >
# do something here...
< /Directory >
# limit access to intranet subdir.
< Directory $dir/intranet >
order deny,allow
deny from all
allow from 10.0.0.0/8
< /Directory >
< /VirtualHost >
< /Macro >
## Use of VHost with different arguments.
Use VHost www.apache.org 80 /projects/apache/web
Use VHost www.perl.com 8080 /projects/perl/web
Use VHost www.ensmp.fr 1234 /projects/mines/web
## Done.
Download (0.013MB)
Added: 2006-05-08 License: BSD License Price:
1264 downloads
HTML::Macro 1.27
HTML::Macro can process HTML templates with loops, conditionals, macros and more! more>>
HTML::Macro can process HTML templates with loops, conditionals, macros and more!
SYNOPSIS
use HTML::Macro;
$htm = new HTML::Macro (template.html);
$htm->print;
sub myfunc {
$htm->declare (var, missing);
$htm->set (var, value);
return $htm->process;
}
( in template.html ):
< html >< body >
< eval expr="&myfunc" >
< if def="missing" >
Message about missing stuff...
< else / >
Vars value is #var#.
< /if >
< /eval >
< /body >< /html >
HTML::Macro is a module to be used behind a web server (in CGI scripts). It provides a convenient mechanism for generating HTML pages by combining "dynamic" data derived from a database or other computation with HTML templates that represent fixed or "static" content of a page.
There are many different ways to accomplish what HTML::Macro does, including ASP, embedded perl, CFML, etc, etc. The motivation behind HTML::Macro is to keep everything that a graphic designer wants to play with *in a single HTML template*, and to keep as much as possible of what a perl programmer wants to play with *in a perl file*. Our thinking is that there are two basically dissimilar tasks involved in producing a dynamic web page: graphic design and programming. Even if one person is responsible for both tasks, it is useful to separate them in order to aid clear thinking and organized work. I guess you could say the main motivation for this separation is to make it easier for emacs (and other text processors, including humans) to parse your files: its yucky to have a lot of HTML in a string in your perl file, and its yucky to have perl embedded in a special tag in an HTML file.
HTML::Macro began with some simple programming constructs: macro expansions, include files, conditionals, loops and block quotes. Since then weve added very little: only a define tag to allow setting values and an eval tag to allow perl function calls in a nested macro scope. Our creed is "less is more, more or less."
HTML::Macro variables will look familiar to C preprocessor users or especially to Cold Fusion people. They are always surrounded with single or double hash marks: "#" or "##". Variables surrounded by double hash marks are subject to html entity encoding; variables with single hash marks are substituted "as is" (like single quotes in perl or UNIX shells). Conditionals are denoted by the and tags, and loops by the tag. Quoting used to be done using a tag, but we now deprecate that in favor of the more familiar CFML quoting syntax: < !--- --- >.
<<lessSYNOPSIS
use HTML::Macro;
$htm = new HTML::Macro (template.html);
$htm->print;
sub myfunc {
$htm->declare (var, missing);
$htm->set (var, value);
return $htm->process;
}
( in template.html ):
< html >< body >
< eval expr="&myfunc" >
< if def="missing" >
Message about missing stuff...
< else / >
Vars value is #var#.
< /if >
< /eval >
< /body >< /html >
HTML::Macro is a module to be used behind a web server (in CGI scripts). It provides a convenient mechanism for generating HTML pages by combining "dynamic" data derived from a database or other computation with HTML templates that represent fixed or "static" content of a page.
There are many different ways to accomplish what HTML::Macro does, including ASP, embedded perl, CFML, etc, etc. The motivation behind HTML::Macro is to keep everything that a graphic designer wants to play with *in a single HTML template*, and to keep as much as possible of what a perl programmer wants to play with *in a perl file*. Our thinking is that there are two basically dissimilar tasks involved in producing a dynamic web page: graphic design and programming. Even if one person is responsible for both tasks, it is useful to separate them in order to aid clear thinking and organized work. I guess you could say the main motivation for this separation is to make it easier for emacs (and other text processors, including humans) to parse your files: its yucky to have a lot of HTML in a string in your perl file, and its yucky to have perl embedded in a special tag in an HTML file.
HTML::Macro began with some simple programming constructs: macro expansions, include files, conditionals, loops and block quotes. Since then weve added very little: only a define tag to allow setting values and an eval tag to allow perl function calls in a nested macro scope. Our creed is "less is more, more or less."
HTML::Macro variables will look familiar to C preprocessor users or especially to Cold Fusion people. They are always surrounded with single or double hash marks: "#" or "##". Variables surrounded by double hash marks are subject to html entity encoding; variables with single hash marks are substituted "as is" (like single quotes in perl or UNIX shells). Conditionals are denoted by the and tags, and loops by the tag. Quoting used to be done using a tag, but we now deprecate that in favor of the more familiar CFML quoting syntax: < !--- --- >.
Download (0.023MB)
Added: 2006-07-31 License: Perl Artistic License Price:
1180 downloads
XMacroj 0.1.0
XMacroJ is an XML macro language for building text documents from XML components. more>>
XMacroJ is an XML macro language for building text documents from XML components. The project removes the reliance on using the include directives and frees the programmer from locking the development directly into a specific framework.
Using XMacroJ, the developer can loosely couple the development process to a framework by developing macros that wrap the framework and then creating target documents that are based on the macros.
If the developer chooses to use a different framework, then only the macros are changed and the target documents can be recompiled.
Build:
1. You must have Apache ant installed.
2. Edit the build.properties file and update the mainbuild path to your desired
directory
3. Just run ant in the directory that contains the ant build.xml file
The build directory will contain the compiled jar. You will need to link this into ant if you wish to use the com.embsoft.tools.xml.macro.XMacroAnt task.
See the doc/doc.txt for details on how to use the xml macro language
Enhancements:
- Insertions functionality was added.
- Insertions allow XML macros to insert into multiple streams which are then concatenated together in the target destination file.
- For example, you could use an insertion in a macro to insert an include directive in an XHTML document header element, or an import line when generating a Java file.
<<lessUsing XMacroJ, the developer can loosely couple the development process to a framework by developing macros that wrap the framework and then creating target documents that are based on the macros.
If the developer chooses to use a different framework, then only the macros are changed and the target documents can be recompiled.
Build:
1. You must have Apache ant installed.
2. Edit the build.properties file and update the mainbuild path to your desired
directory
3. Just run ant in the directory that contains the ant build.xml file
The build directory will contain the compiled jar. You will need to link this into ant if you wish to use the com.embsoft.tools.xml.macro.XMacroAnt task.
See the doc/doc.txt for details on how to use the xml macro language
Enhancements:
- Insertions functionality was added.
- Insertions allow XML macros to insert into multiple streams which are then concatenated together in the target destination file.
- For example, you could use an insertion in a macro to insert an include directive in an XHTML document header element, or an import line when generating a Java file.
Download (0.085MB)
Added: 2006-11-17 License: LGPL (GNU Lesser General Public License) Price:
1072 downloads
Ooo-macro 2.2en
ooo-macro is a toolkit for OpenOffice.org or StarOffice. more>>
Ooo-macro is a toolkit for OpenOffice.org or StarOffice including macros written in StarBasic, associated shortcuts, the template SPECIAL.stw, and the Perl script.
It is a complete kit of macros and shortcuts for everyday usage of StarWriter and OpenOffice.org Writer. (English version.)
Enhancements:
- This release includes a shell script and a Midnight Commander plug-in for fast dumping and viewing of the contents of OpenOffice.org 2.x ODT and ODS files and version 1.x SXW and SXC files.
<<lessIt is a complete kit of macros and shortcuts for everyday usage of StarWriter and OpenOffice.org Writer. (English version.)
Enhancements:
- This release includes a shell script and a Midnight Commander plug-in for fast dumping and viewing of the contents of OpenOffice.org 2.x ODT and ODS files and version 1.x SXW and SXC files.
Download (0.095MB)
Added: 2005-10-19 License: GPL (GNU General Public License) Price:
1473 downloads
Yasm 0.6.1
Yasm is a complete rewrite of NASM. more>>
Yasm is a complete rewrite of the NASM assembler under the "new" BSD License (some portions are under other licenses, see COPYING for details).
Yasm project is designed from the ground up to allow for multiple assembler syntaxes to be supported (eg, TASM, GAS, NASM etc.) in addition to multiple output object formats and even multiple instruction sets. Another primary module of the overall design is an optimizer module.
The core focus of Yasm is not the "yasm" commandline frontend; rather, it is the Libyasm library and associated LoadableModules? (see the ProgrammerReferences for documentation).
Libyasm and the modules are intended for reuse in other sorts of programs dealing with code at the assembly level (compilers, debuggers, etc). Someday, libyasm may be packaged separately from the rest of Yasm.
Key Current User-Visible Yasm major features:>
- Nearly feature-complete lexing and parsing of (preprocessed) NASM syntax?.
- AMD64 support (enabled using "BITS 64" and "-m amd64" option)
- 64-bit (and larger) integer constants allowed (including math operations).
- Internationalization support via GNU gettext.
- A simple 2-pass optimizer (its a bit better than the NASM one).
- The "real" NASM preprocessor (imported from NASMs source tree).
- Binary object file? output (NASM style).
- COFF object file? output, for use with DJGPP.
- Win32 object file? output (including Win64/AMD64 support).
- STABS debug format?.
- ELF32 and ELF64 object file output. No debugging information included at this point.
- Portability; currently compilable on:
- UNIX and compatibles (FreeBSD and Linux tested, GNU configure based autoconfiguration)
- DOS (using DJGPP)
- Windows (using Visual C++ or CygWin).
Key Internal Main features:>
- A NASM syntax parser written in yacc. This simplifies the source code and increases performance: yacc-generated parsers are almost always faster than hand-written ones. Also, yacc (and its GNU implementation, bison) is an extremely well-tested and well-documented tool.
- Architecture-specific instruction parsers hand-written for simplicity and size, as well as to make it easy to add additional architectures while retaining the same front-end syntax. The blend of yacc for syntax and a hand-written parser for instructions strikes a great balance between the strengths and weaknesses of each approach.
- A NASM syntax? lexer written in re2c. A highly efficient scanner generator (almost always faster than lex/flex), its also very embeddable due to its code generation methodology, allowing a number of re2c scanners to be used in various places in yasm without any worries about naming conflicts.
- Many of the modular interfaces at least superficially finished. This is still an area that needs a lot of work.
- A small set of portable equivalants of useful functions that are standard on some systems (detected via configure), such as the queue(3) set of functions, strdup, strcasecmp, and mergesort.
- A decent (and growing) set of assembler test input files to test the entire assembler as well as specific modules.
Important Differences from NASM:
- Yasm defaults to reading from standard input if no files are specified. When an input file is specified, Yasm behaves like NASM.
- A number of command line options are different. Run "yasm --help" for a quick command line option summary, or read the full yasm(1) manpage for detailed descriptions of all command line options.
Enhancements:
- This release adds SSE4.1 and SSE4.2 instruction support, a .set directive in the GAS parser, and allowing Mach-O custom sections.
- Bugfixes include fixes to AMD Pacifica (SVM) instructions, absolute section handling, RIP-relative cross-section references in bin output, and many others.
<<lessYasm project is designed from the ground up to allow for multiple assembler syntaxes to be supported (eg, TASM, GAS, NASM etc.) in addition to multiple output object formats and even multiple instruction sets. Another primary module of the overall design is an optimizer module.
The core focus of Yasm is not the "yasm" commandline frontend; rather, it is the Libyasm library and associated LoadableModules? (see the ProgrammerReferences for documentation).
Libyasm and the modules are intended for reuse in other sorts of programs dealing with code at the assembly level (compilers, debuggers, etc). Someday, libyasm may be packaged separately from the rest of Yasm.
Key Current User-Visible Yasm major features:>
- Nearly feature-complete lexing and parsing of (preprocessed) NASM syntax?.
- AMD64 support (enabled using "BITS 64" and "-m amd64" option)
- 64-bit (and larger) integer constants allowed (including math operations).
- Internationalization support via GNU gettext.
- A simple 2-pass optimizer (its a bit better than the NASM one).
- The "real" NASM preprocessor (imported from NASMs source tree).
- Binary object file? output (NASM style).
- COFF object file? output, for use with DJGPP.
- Win32 object file? output (including Win64/AMD64 support).
- STABS debug format?.
- ELF32 and ELF64 object file output. No debugging information included at this point.
- Portability; currently compilable on:
- UNIX and compatibles (FreeBSD and Linux tested, GNU configure based autoconfiguration)
- DOS (using DJGPP)
- Windows (using Visual C++ or CygWin).
Key Internal Main features:>
- A NASM syntax parser written in yacc. This simplifies the source code and increases performance: yacc-generated parsers are almost always faster than hand-written ones. Also, yacc (and its GNU implementation, bison) is an extremely well-tested and well-documented tool.
- Architecture-specific instruction parsers hand-written for simplicity and size, as well as to make it easy to add additional architectures while retaining the same front-end syntax. The blend of yacc for syntax and a hand-written parser for instructions strikes a great balance between the strengths and weaknesses of each approach.
- A NASM syntax? lexer written in re2c. A highly efficient scanner generator (almost always faster than lex/flex), its also very embeddable due to its code generation methodology, allowing a number of re2c scanners to be used in various places in yasm without any worries about naming conflicts.
- Many of the modular interfaces at least superficially finished. This is still an area that needs a lot of work.
- A small set of portable equivalants of useful functions that are standard on some systems (detected via configure), such as the queue(3) set of functions, strdup, strcasecmp, and mergesort.
- A decent (and growing) set of assembler test input files to test the entire assembler as well as specific modules.
Important Differences from NASM:
- Yasm defaults to reading from standard input if no files are specified. When an input file is specified, Yasm behaves like NASM.
- A number of command line options are different. Run "yasm --help" for a quick command line option summary, or read the full yasm(1) manpage for detailed descriptions of all command line options.
Enhancements:
- This release adds SSE4.1 and SSE4.2 instruction support, a .set directive in the GAS parser, and allowing Mach-O custom sections.
- Bugfixes include fixes to AMD Pacifica (SVM) instructions, absolute section handling, RIP-relative cross-section references in bin output, and many others.
Download (1.1MB)
Added: 2007-06-16 License: BSD License Price:
876 downloads
Text::Macro 0.07
Text::Macro Perl module is a template facility whos focus is on generating code such as c, java or sql. more>>
Text::Macro Perl module is a template facility whos focus is on generating code such as c, java or sql. While generating perl code is also possible, there is a potential conflict between the control-symbol and the perl comment symbol.
Perl is excelent at manipulating text, and it begs the question why one would need such a tool.
The answer is that good code design should be such that applications should not have to be modified so as to make configuration changes. Thus external configuration files/data is used. However, if these files are read in as perl-code, then simple errors could crash the whole application (or provide subtle security risks). Further, it is often desired to invert the control flow and text-data (namely, make the embedded strings primary, and control-flow secondary). This is the ASP model, and for 90% HTML, 10% code, this works great.
This module supports many control facilities which directly translate into perl-control facilities (e.g. inverting the ASP-style code back into perl-style behind the scenes). The inversion process is cached in a simple user object.
The module was initially inspired by Text::FastTemplate by Robert Lehr, whos module didnt completely fullfill my needs.
Main features:
- fast, simple, robust
- code-generating-centric feature-set
- substitutions stand-out from template
- macro-code embedded in text
- OOP
- external and internal includes (for clearifying complex control-flow)
- scoped variable-substitutions
- line-based processing (like cpp)
- usable error messages
<<lessPerl is excelent at manipulating text, and it begs the question why one would need such a tool.
The answer is that good code design should be such that applications should not have to be modified so as to make configuration changes. Thus external configuration files/data is used. However, if these files are read in as perl-code, then simple errors could crash the whole application (or provide subtle security risks). Further, it is often desired to invert the control flow and text-data (namely, make the embedded strings primary, and control-flow secondary). This is the ASP model, and for 90% HTML, 10% code, this works great.
This module supports many control facilities which directly translate into perl-control facilities (e.g. inverting the ASP-style code back into perl-style behind the scenes). The inversion process is cached in a simple user object.
The module was initially inspired by Text::FastTemplate by Robert Lehr, whos module didnt completely fullfill my needs.
Main features:
- fast, simple, robust
- code-generating-centric feature-set
- substitutions stand-out from template
- macro-code embedded in text
- OOP
- external and internal includes (for clearifying complex control-flow)
- scoped variable-substitutions
- line-based processing (like cpp)
- usable error messages
Download (0.012MB)
Added: 2007-05-31 License: Perl Artistic License Price:
877 downloads
Text::MacroScript 1.38
Text::MacroScript is a macro pre-processor with embedded perl capability. more>>
Text::MacroScript is a macro pre-processor with embedded perl capability.
SYNOPSIS
use Text::MacroScript ;
# new() for macro processing
my $Macro = Text::MacroScript->new ;
while( ) {
print $Macro->expand( $_ ) if $_ ;
}
# Canonical use (the filename improves error messages):
my $Macro = Text::MacroScript->new ;
while( ) {
print $Macro->expand( $_, $ARGV ) if $_ ;
}
# new() for embedded macro processing
my $Macro = Text::MacroScript->new( -embedded => 1 ) ;
# Delimiters default to
# or
my $Macro = Text::MacroScript->new( -opendelim => [[, -closedelim => ]] ) ;
while( ) {
print $Macro->expand_delimited( $_, $ARGV ) if $_ ;
}
# Create a macro object and create initial macros/scripts from the file(s)
# given:
my $Macro = Text::MacroScript->new(
-file => [ local.macro, ~/.macro/global.macro ]
) ;
# Create a macro object and create initial macros/scripts from the
# definition(s) given:
my $Macro = Text::MacroScript->new(
-macro => [
[ MAX_INT => 32767 ],
],
-script => [
[ DHM2S =>
[
my $s = (#0*24*60*60)+(#1*60*60)+(#2*60) ;
"#0 days, #1 hrs, #2 mins = $s secs"
],
],
-variable => [ *MARKER* => 0 ],
) ;
# We may of course use any combination of the options.
my $Macro = Text::MacroScript->new( -comment => 1 ) ; # Create the %%[] macro.
# define()
$Macro->define( -macro, $macroname, $macrobody ) ;
$Macro->define( -script, $scriptname, $scriptbody ) ;
$Macro->define( -variable, $variablename, $variablebody ) ;
# undefine()
$Macro->undefine( -macro, $macroname ) ;
$Macro->undefine( -script, $scriptname ) ;
$Macro->undefine( -variable, $variablename ) ;
# undefine_all()
$Macro->undefine( -macro ) ;
$Macro->undefine( -script ) ;
$Macro->undefine( -variable ) ;
# list()
@macros = $Macro->list( -macro ) ;
@macros = $Macro->list( -macro, -namesonly ) ;
@scripts = $Macro->list( -script ) ;
@scripts = $Macro->list( -script, -namesonly ) ;
@variables = $Macro->list( -variable ) ;
@variables = $Macro->list( -variable, -namesonly ) ;
# load_file() - always treats the contents as within delimiters if we are
# doing embedded processing.
$Macro->load_file( $filename ) ;
# expand_file() - calls expand_embedded() if we are doing embedded
# processing otherwise calls expand().
$Macro->expand_file( $filename ) ;
@expanded = $Macro->expand_file( $filename ) ;
# expand()
$expanded = $Macro->expand( $unexpanded ) ;
$expanded = $Macro->expand( $unexpanded, $filename ) ;
# expand_embedded()
$expanded = $Macro->expand_embedded( $unexpanded ) ;
$expanded = $Macro->expand_embedded( $unexpanded, $filename ) ;
This bundle also includes the macro and macrodir scripts which allows us to expand macros without having to use/understand Text::MacroScript.pm, although you will have to learn the handful of macro commands available and which are documented here and in macro. macro provides more documentation on the embedded approach.
The macroutil.pl library supplied provides some functions which you may choose to use in HTML work for example.
<<lessSYNOPSIS
use Text::MacroScript ;
# new() for macro processing
my $Macro = Text::MacroScript->new ;
while( ) {
print $Macro->expand( $_ ) if $_ ;
}
# Canonical use (the filename improves error messages):
my $Macro = Text::MacroScript->new ;
while( ) {
print $Macro->expand( $_, $ARGV ) if $_ ;
}
# new() for embedded macro processing
my $Macro = Text::MacroScript->new( -embedded => 1 ) ;
# Delimiters default to
# or
my $Macro = Text::MacroScript->new( -opendelim => [[, -closedelim => ]] ) ;
while( ) {
print $Macro->expand_delimited( $_, $ARGV ) if $_ ;
}
# Create a macro object and create initial macros/scripts from the file(s)
# given:
my $Macro = Text::MacroScript->new(
-file => [ local.macro, ~/.macro/global.macro ]
) ;
# Create a macro object and create initial macros/scripts from the
# definition(s) given:
my $Macro = Text::MacroScript->new(
-macro => [
[ MAX_INT => 32767 ],
],
-script => [
[ DHM2S =>
[
my $s = (#0*24*60*60)+(#1*60*60)+(#2*60) ;
"#0 days, #1 hrs, #2 mins = $s secs"
],
],
-variable => [ *MARKER* => 0 ],
) ;
# We may of course use any combination of the options.
my $Macro = Text::MacroScript->new( -comment => 1 ) ; # Create the %%[] macro.
# define()
$Macro->define( -macro, $macroname, $macrobody ) ;
$Macro->define( -script, $scriptname, $scriptbody ) ;
$Macro->define( -variable, $variablename, $variablebody ) ;
# undefine()
$Macro->undefine( -macro, $macroname ) ;
$Macro->undefine( -script, $scriptname ) ;
$Macro->undefine( -variable, $variablename ) ;
# undefine_all()
$Macro->undefine( -macro ) ;
$Macro->undefine( -script ) ;
$Macro->undefine( -variable ) ;
# list()
@macros = $Macro->list( -macro ) ;
@macros = $Macro->list( -macro, -namesonly ) ;
@scripts = $Macro->list( -script ) ;
@scripts = $Macro->list( -script, -namesonly ) ;
@variables = $Macro->list( -variable ) ;
@variables = $Macro->list( -variable, -namesonly ) ;
# load_file() - always treats the contents as within delimiters if we are
# doing embedded processing.
$Macro->load_file( $filename ) ;
# expand_file() - calls expand_embedded() if we are doing embedded
# processing otherwise calls expand().
$Macro->expand_file( $filename ) ;
@expanded = $Macro->expand_file( $filename ) ;
# expand()
$expanded = $Macro->expand( $unexpanded ) ;
$expanded = $Macro->expand( $unexpanded, $filename ) ;
# expand_embedded()
$expanded = $Macro->expand_embedded( $unexpanded ) ;
$expanded = $Macro->expand_embedded( $unexpanded, $filename ) ;
This bundle also includes the macro and macrodir scripts which allows us to expand macros without having to use/understand Text::MacroScript.pm, although you will have to learn the handful of macro commands available and which are documented here and in macro. macro provides more documentation on the embedded approach.
The macroutil.pl library supplied provides some functions which you may choose to use in HTML work for example.
Download (0.036MB)
Added: 2007-05-31 License: Perl Artistic License Price:
876 downloads
Filter::Macro 0.11
Filter::Macro is a Perl module to make macro modules that are expanded inline. more>>
Filter::Macro is a Perl module to make macro modules that are expanded inline.
SYNOPSIS
In MyHandyModules.pm:
package MyHandyModules;
use Filter::Macro;
# lines below will be expanded into callers code
use strict;
use warnings;
use Switch;
use IO::All;
use Quantum::Superpositions;
In your program or module:
use MyHandyModules; # lines above are expanded here
If many of your programs begin with the same lines, it may make sense to abstract them away into a module, and use that module instead.
Sadly, it does not work that way, because by default, all lexical pragmas, source filters and subroutine imports invoked in MyHandyModules.pm takes effect in that module, not the calling programs.
One way to solve this problem is to use Filter::Include:
use Filter::Include;
include MyHandyModules;
However, it would be really nice if MyHandyModules.pm could define the macro-like semantic itself, instead of placing the burden on the caller.
This module lets you do precisely that. All you need to do is to put one line in MyHandyModules.pm, after the package MyHandyModules; line:
use Filter::Macro;
With this, a program or module that says use Filter::Macro will expand lines below use Filter::Macro into their own code, instead of the default semantic of evaluating them in the MyHandyModules package.
Line numbers in error and warning messages are unaffected by this module; they still point to the correct file name and line numbers.
<<lessSYNOPSIS
In MyHandyModules.pm:
package MyHandyModules;
use Filter::Macro;
# lines below will be expanded into callers code
use strict;
use warnings;
use Switch;
use IO::All;
use Quantum::Superpositions;
In your program or module:
use MyHandyModules; # lines above are expanded here
If many of your programs begin with the same lines, it may make sense to abstract them away into a module, and use that module instead.
Sadly, it does not work that way, because by default, all lexical pragmas, source filters and subroutine imports invoked in MyHandyModules.pm takes effect in that module, not the calling programs.
One way to solve this problem is to use Filter::Include:
use Filter::Include;
include MyHandyModules;
However, it would be really nice if MyHandyModules.pm could define the macro-like semantic itself, instead of placing the burden on the caller.
This module lets you do precisely that. All you need to do is to put one line in MyHandyModules.pm, after the package MyHandyModules; line:
use Filter::Macro;
With this, a program or module that says use Filter::Macro will expand lines below use Filter::Macro into their own code, instead of the default semantic of evaluating them in the MyHandyModules package.
Line numbers in error and warning messages are unaffected by this module; they still point to the correct file name and line numbers.
Download (0.013MB)
Added: 2007-02-20 License: MIT/X Consortium License Price:
976 downloads
Beesoft Tracer 0.04
Beesoft Tracer is a suite of tools for a remote debugging of running program. more>>
Beesoft Tracer project is a suite of tools for a remote debugging of running program. All elements are wrote in pure C++ with using STL library. The communication between elements is via sockets: so called unix domain socket and TCP/IP.
Elements of Beesoft Tracer system:
In whole process are used three applications.
1) the debugged program, which sends informations about own states to the server,
2) the trace server, named tracesrv, is a program collecting all information coming from the debugged program. The information can be send to one client program, if this is connected.
3) the trace client, receives information from the trace server, and displays them in text mode. GUI client is already in development and will be soon available.
Advantages of system:
- the debugged program is executed only a bit slower, almost goes normal and simultaneously sends all debugging information, which need a programmer for debugging. Information are sent to the server via unix domain socket.
- the client program, which displays received information, can be in other computer - in remote host (or at the same). Information are receiving via TCP/IP protocol.
How can you use it?
To debugging the remote program it is needed:
1) download source code of Beesoft Tracer to disk,
2) build a library libbstrace and the programs tracesrv and tracecli (use make ),
3) add a appropriate macros into the source code of the program which should be debugged (macros are defined in the header file Tracer.h) and in compile time link static library libbstrace.a.
After that you are ready for debugging!
To run the debugging enviroment:
1) start (followed programs must be run on the same machine):
a) first tracesrv
b) next debugged program ( for tests in packet is accesible program example),
2) on remote or on the same machine start client tracecli.
In the package file you can find the source code of the example program. There you can see the right using of necessary macros!
<<lessElements of Beesoft Tracer system:
In whole process are used three applications.
1) the debugged program, which sends informations about own states to the server,
2) the trace server, named tracesrv, is a program collecting all information coming from the debugged program. The information can be send to one client program, if this is connected.
3) the trace client, receives information from the trace server, and displays them in text mode. GUI client is already in development and will be soon available.
Advantages of system:
- the debugged program is executed only a bit slower, almost goes normal and simultaneously sends all debugging information, which need a programmer for debugging. Information are sent to the server via unix domain socket.
- the client program, which displays received information, can be in other computer - in remote host (or at the same). Information are receiving via TCP/IP protocol.
How can you use it?
To debugging the remote program it is needed:
1) download source code of Beesoft Tracer to disk,
2) build a library libbstrace and the programs tracesrv and tracecli (use make ),
3) add a appropriate macros into the source code of the program which should be debugged (macros are defined in the header file Tracer.h) and in compile time link static library libbstrace.a.
After that you are ready for debugging!
To run the debugging enviroment:
1) start (followed programs must be run on the same machine):
a) first tracesrv
b) next debugged program ( for tests in packet is accesible program example),
2) on remote or on the same machine start client tracecli.
In the package file you can find the source code of the example program. There you can see the right using of necessary macros!
Download (0.044MB)
Added: 2007-07-29 License: GPL (GNU General Public License) Price:
817 downloads
NASM - The Netwide Assembler 0.99.00
NASM - The Netwide Assembler is 80x86 assembler designed for portability and modularity. more>>
NASM is an 80x86 assembler designed for portability and modularity. The project supports a range of object file formats including Linux a.out and ELF, COFF, Microsoft 16-bit OBJ and Win32. It will also output plain binary files.
Its syntax is designed to be simple and easy to understand, similar to Intels but less complex. It supports Pentium, P6, MMX, 3DNow! and SSE opcodes, and has macro capability. It includes a disassembler as well.
The Netwide Assembler grew out of an idea on comp.lang.asm.x86 (or possibly alt.lang.asm - I forget which), which was essentially that there didnt seem to be a good free x86-series assembler around, and that maybe someone ought to write one.
- a86 is good, but not free, and in particular you dont get any 32-bit capability until you pay. Its DOS only, too.
- gas is free, and ports over DOS and Unix, but its not very good, since its designed to be a back end to gcc, which always feeds it correct code. So its error checking is minimal. Also, its syntax is horrible, from the point of view of anyone trying to actually write anything in it. Plus you cant write 16-bit code in it (properly).
- as86 is Minix- and Linux-specific, and (my version at least) doesnt seem to have much (or any) documentation.
- MASM isnt very good, and its (was) expensive, and it runs only under DOS.
- TASM is better, but still strives for MASM compatibility, which means millions of directives and tons of red tape. And its syntax is essentially MASMs, with the contradictions and quirks that entails (although it sorts out some of those by means of Ideal mode). Its expensive too. And its DOS-only.
So here, for your coding pleasure, is NASM. At present its still in prototype stage - we dont promise that it can outperform any of these assemblers. But please, please send us bug reports, fixes, helpful information, and anything else you can get your hands on (and thanks to the many people whove done this already! You all know who you are), and well improve it out of all recognition. Again.
Installing NASM under Unix
Once youve obtained the Unix source archive for NASM, nasm-X.XX.tar.gz (where X.XX denotes the version number of NASM contained in the archive), unpack it into a directory such as /usr/local/src. The archive, when unpacked, will create its own subdirectory nasm-X.XX.
NASM is an auto-configuring package: once youve unpacked it, cd to the directory its been unpacked into and type ./configure. This shell script will find the best C compiler to use for building NASM and set up Makefiles accordingly.
Once NASM has auto-configured, you can type make to build the nasm and ndisasm binaries, and then make install to install them in /usr/local/bin and install the man pages nasm.1 and ndisasm.1 in /usr/local/man/man1. Alternatively, you can give options such as --prefix to the configure script (see the file INSTALL for more details), or install the programs yourself.
NASM also comes with a set of utilities for handling the RDOFF custom object-file format, which are in the rdoff subdirectory of the NASM archive. You can build these with make rdf and install them with make rdf_install, if you want them.
If NASM fails to auto-configure, you may still be able to make it compile by using the fall-back Unix makefile Makefile.unx. Copy or rename that file to Makefile and try typing make. There is also a Makefile.unx file in the rdoff subdirectory.
Enhancements:
- adds 64-bit support "-f macho" output format "265th extern" bug in "-f obj" fixed(?)
<<lessIts syntax is designed to be simple and easy to understand, similar to Intels but less complex. It supports Pentium, P6, MMX, 3DNow! and SSE opcodes, and has macro capability. It includes a disassembler as well.
The Netwide Assembler grew out of an idea on comp.lang.asm.x86 (or possibly alt.lang.asm - I forget which), which was essentially that there didnt seem to be a good free x86-series assembler around, and that maybe someone ought to write one.
- a86 is good, but not free, and in particular you dont get any 32-bit capability until you pay. Its DOS only, too.
- gas is free, and ports over DOS and Unix, but its not very good, since its designed to be a back end to gcc, which always feeds it correct code. So its error checking is minimal. Also, its syntax is horrible, from the point of view of anyone trying to actually write anything in it. Plus you cant write 16-bit code in it (properly).
- as86 is Minix- and Linux-specific, and (my version at least) doesnt seem to have much (or any) documentation.
- MASM isnt very good, and its (was) expensive, and it runs only under DOS.
- TASM is better, but still strives for MASM compatibility, which means millions of directives and tons of red tape. And its syntax is essentially MASMs, with the contradictions and quirks that entails (although it sorts out some of those by means of Ideal mode). Its expensive too. And its DOS-only.
So here, for your coding pleasure, is NASM. At present its still in prototype stage - we dont promise that it can outperform any of these assemblers. But please, please send us bug reports, fixes, helpful information, and anything else you can get your hands on (and thanks to the many people whove done this already! You all know who you are), and well improve it out of all recognition. Again.
Installing NASM under Unix
Once youve obtained the Unix source archive for NASM, nasm-X.XX.tar.gz (where X.XX denotes the version number of NASM contained in the archive), unpack it into a directory such as /usr/local/src. The archive, when unpacked, will create its own subdirectory nasm-X.XX.
NASM is an auto-configuring package: once youve unpacked it, cd to the directory its been unpacked into and type ./configure. This shell script will find the best C compiler to use for building NASM and set up Makefiles accordingly.
Once NASM has auto-configured, you can type make to build the nasm and ndisasm binaries, and then make install to install them in /usr/local/bin and install the man pages nasm.1 and ndisasm.1 in /usr/local/man/man1. Alternatively, you can give options such as --prefix to the configure script (see the file INSTALL for more details), or install the programs yourself.
NASM also comes with a set of utilities for handling the RDOFF custom object-file format, which are in the rdoff subdirectory of the NASM archive. You can build these with make rdf and install them with make rdf_install, if you want them.
If NASM fails to auto-configure, you may still be able to make it compile by using the fall-back Unix makefile Makefile.unx. Copy or rename that file to Makefile and try typing make. There is also a Makefile.unx file in the rdoff subdirectory.
Enhancements:
- adds 64-bit support "-f macho" output format "265th extern" bug in "-f obj" fixed(?)
Download (MB)
Added: 2007-05-24 License: GMGPL (GNAT Modified GPL) Price:
921 downloads
Shohei Mail 0.1.0
Shohei is a multi-language, multi-function, multi-server, multi-user, multi-context, multi-media web-based mail client. more>>
Shohei is a multi-language, multi-function, multi-server, multi-user, multi-context, multi-media web-based mail client, news client, calendar and note server.
Shohei is a pop3 client which meets the requirements of Stockholm public network.
Main features:
- Sends mail using SMTP
- Receives mail using POP
- Handles users in any number of domains on any number of servers
- Web based administration with different admins for different domains
- MIME aware
- Usenet News client
- Online context-sensitive help
- Customizable using HTML templates with embedded macros
- Calendar
- Write simple notes
- English and Swedish message catalogs, new ones are easily added
<<lessShohei is a pop3 client which meets the requirements of Stockholm public network.
Main features:
- Sends mail using SMTP
- Receives mail using POP
- Handles users in any number of domains on any number of servers
- Web based administration with different admins for different domains
- MIME aware
- Usenet News client
- Online context-sensitive help
- Customizable using HTML templates with embedded macros
- Calendar
- Write simple notes
- English and Swedish message catalogs, new ones are easily added
Download (0.16MB)
Added: 2006-06-10 License: GPL (GNU General Public License) Price:
1231 downloads
pts-elfdisasm 0.14
pts-elfdisasm is command-line ELF disassembler for the i386 architecture. more>>
pts-elfdisasm is command-line ELF disassembler for the i386 architecture, based on elfdisasm-0.11, which is in turn based on ndisasm of nasm-0.98.
It supports dumping section headers, symbol tables, and disassembling code sections of i386 ELF binaries, object, and shared object files.
It shows both the file offset, the memory offset, the hex dump, and the mnemonic of each assembly instruction.
It can also find and mark jump targets, call targets, and system calls in the dump for easier cross-referencing. The dump cannot be fed directly to an assembler to recreate the original binary.
<<lessIt supports dumping section headers, symbol tables, and disassembling code sections of i386 ELF binaries, object, and shared object files.
It shows both the file offset, the memory offset, the hex dump, and the mnemonic of each assembly instruction.
It can also find and mark jump targets, call targets, and system calls in the dump for easier cross-referencing. The dump cannot be fed directly to an assembler to recreate the original binary.
Download (0.13MB)
Added: 2005-11-02 License: Other/Proprietary License with Source Price:
816 downloads
Autoconf Macro Archive 2007-08-21 (cryp.to)
Autoconf Macro Archive aims to provide a collection of reusable Autoconf macros as free software. more>>
Autoconf Macro Archive aims to provide a collection of reusable Autoconf macros as free software.
The archive currently features more than 300 macros which perform portability tests ranging from compiler support for weird language extensions to automatic generation of sophisticated Automake rules.
However, all these macros have been contributed by friendly supporters of the cause from all over the Internet; the archive really just collects and distributes them.
<<lessThe archive currently features more than 300 macros which perform portability tests ranging from compiler support for weird language extensions to automatic generation of sophisticated Automake rules.
However, all these macros have been contributed by friendly supporters of the cause from all over the Internet; the archive really just collects and distributes them.
Download (0.53MB)
Added: 2007-08-03 License: GPL v3 Price:
812 downloads
Command line Calculator 1.01
Command Line calculator CLC is the calculator that can calculate direct at the linux console. more>>
Command Line calculator "CLC" is the calculator that can calculate direct at the Linux console.
Extract the CLCC file to /usr/bin you might need to login as root or equvalent account, to be able to access it whenever you need it.
Then just write CLCC 67+89 and the answer will be presented to you directly.
CLCC calculates from left to right with no exceptions. CLC also have some extra parameters that is sent to CLC using backslash parameters.
CLCC r2 10/3 this will round the result to 2 decimals you can use 1 to 9 if you want to round the sum of.
the r parameter can also be combined with the other parameters but it must be added first like this
CLCC r3c 10/3 - to get 10 diveded with 3 rounded down to 3 decimals.
CLCC is tested with Ubuntu 6.10 and Puppy OS 2.13 but should work with any Linux version in console mode.
The program is developed using Hotbasic for Linux and is Freeware, hope you find it useful, send and email if you have any questions.
Hotbasic is a basic language that compiles into assembler direct, no interpeter that slows down the code, just pure assembler.
So if you want assembler in Linux but doesnt want to code in nasm, HotBasic is the compiler for you.
<<lessExtract the CLCC file to /usr/bin you might need to login as root or equvalent account, to be able to access it whenever you need it.
Then just write CLCC 67+89 and the answer will be presented to you directly.
CLCC calculates from left to right with no exceptions. CLC also have some extra parameters that is sent to CLC using backslash parameters.
CLCC r2 10/3 this will round the result to 2 decimals you can use 1 to 9 if you want to round the sum of.
the r parameter can also be combined with the other parameters but it must be added first like this
CLCC r3c 10/3 - to get 10 diveded with 3 rounded down to 3 decimals.
CLCC is tested with Ubuntu 6.10 and Puppy OS 2.13 but should work with any Linux version in console mode.
The program is developed using Hotbasic for Linux and is Freeware, hope you find it useful, send and email if you have any questions.
Hotbasic is a basic language that compiles into assembler direct, no interpeter that slows down the code, just pure assembler.
So if you want assembler in Linux but doesnt want to code in nasm, HotBasic is the compiler for you.
Download (0.006MB)
Added: 2007-02-16 License: Freeware Price:
985 downloads
GNU m4 1.4.10
GNU m4 is an implementation of the traditional Unix macro processor. more>>
GNU m4 is an implementation of the traditional Unix macro processor. GNU m4 is mostly SVR4 compatible although it has some extensions (for example, handling more than 9 positional parameters to macros).
GNU m4 also has built-in functions for including files, running shell commands, doing arithmetic, etc.
GNU m4 is a macro processor in the sense that it copies its input to the output expanding macros as it goes. Macros are either builtin or user-defined and can take any number of arguments.
Besides just doing macro expansion m4 has builtin functions for including named files, running UNIX commands, doing integer arithmetic, manipulating text in various ways, recursion etc... m4 can be used either as a front-end to a compiler or as a macro processor in its own right.
<<lessGNU m4 also has built-in functions for including files, running shell commands, doing arithmetic, etc.
GNU m4 is a macro processor in the sense that it copies its input to the output expanding macros as it goes. Macros are either builtin or user-defined and can take any number of arguments.
Besides just doing macro expansion m4 has builtin functions for including named files, running UNIX commands, doing integer arithmetic, manipulating text in various ways, recursion etc... m4 can be used either as a front-end to a compiler or as a macro processor in its own right.
Download (0.37MB)
Added: 2007-07-11 License: GPL (GNU General Public License) Price:
845 downloads
Secleted [ 0 ] software to compare
Copyright Notice:
Software piracy is theft, Using crack, password, serial numbers, registration codes, key generators is illegal and prevent future software development. The above nasm macros search only lists software in full, demo and trial versions for free download. Download links are directly from our mirror sites or publisher sites, torrent files or links from rapidshare.com, yousendit.com or megaupload.com are not allowed