PERLTODO
Section: Perl Programmers Reference Guide (1)Updated: 2009-08-10
Index Return to Main Contents
NAME
perltodo - Perl TO-DO ListDESCRIPTION
This is a list of wishes for Perl. The most up to date version of this file is at http://perl5.git.perl.org/perl.git/blob_plain/HEAD:/pod/perltodo.podThe tasks we think are smaller or easier are listed first. Anyone is welcome to work on any of these, but it's a good idea to first contact<EMAIL_ADDRESS>to avoid duplication of effort, and to learn from any previous attempts. By all means contact a pumpking privately first if you prefer.
Whilst patches to make the list shorter are most welcome, ideas to add to the list are also encouraged. Check the perl5-porters archives for past ideas, and any discussion about them. One set of archives may be found at:
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/
What can we offer you in return? Fame, fortune, and everlasting glory? Maybe not, but if your patch is incorporated, then we'll add your name to the AUTHORS file, which ships in the official distribution. How many other programming languages offer you 1 line of immortality?
Tasks that only need Perl knowledge
Remove macperl references from tests
MacPerl is gone. The tests don't need to be there.Remove duplication of test setup.
Schwern notes, that there's duplication of code - lots and lots of tests have some variation on the big block of $Is_Foo checks. We can safely put this into a file, change it to build an %Is hash and require it. Maybe just put it into test.pl. Throw in the handy tainting subroutines.POD -> HTML conversion in the core still sucks
Which is crazy given just how simple POD purports to be, and how simple HTML can be. It's not actually as simple as it sounds, particularly with the flexibility POD allows for "=item", but it would be good to improve the visual appeal of the HTML generated, and to avoid it having any validation errors. See also ``make HTML install work'', as the layout of installation tree is needed to improve the cross-linking.The addition of "Pod::Simple" and its related modules may make this task easier to complete.
Make ExtUtils::ParseXS use strict;
lib/ExtUtils/ParseXS.pm contains this line
# use strict; # One of these days...
Simply uncomment it, and fix all the resulting issues :-)
The more practical approach, to break the task down into manageable chunks, is to work your way though the code from bottom to top, or if necessary adding extra "{ ... }" blocks, and turning on strict within them.
Parallel testing
(This probably impacts much more than the core: also the Test::Harness and TAP::* modules on CPAN.)All of the tests in t/ can now be run in parallel, if $ENV{TEST_JOBS} is set. However, tests within each directory in ext and lib are still run in series, with directories run in parallel. This is an adequate heuristic, but it might be possible to relax it further, and get more throughput. Specifically, it would be good to audit all of lib/*.t, and make them use "File::Temp".
Make Schwern poorer
We should have tests for everything. When all the core's modules are tested, Schwern has promised to donate to $500 to TPF. We may need volunteers to hold him upside down and shake vigorously in order to actually extract the cash.Improve the coverage of the core tests
Use Devel::Cover to ascertain the core modules's test coverage, then add tests that are currently missing.test B
A full test suite for the B module would be nice.A decent benchmark
"perlbench" seems impervious to any recent changes made to the perl core. It would be useful to have a reasonable general benchmarking suite that roughly represented what current perl programs do, and measurably reported whether tweaks to the core improve, degrade or don't really affect performance, to guide people attempting to optimise the guts of perl. Gisle would welcome new tests for perlbench.fix tainting bugs
Fix the bugs revealed by running the test suite with the "-t" switch (via "make test.taintwarn").Dual life everything
As part of the ``dists'' plan, anything that doesn't belong in the smallest perl distribution needs to be dual lifed. Anything else can be too. Figure out what changes would be needed to package that module and its tests up for CPAN, and do so. Test it with older perl releases, and fix the problems you find.To make a minimal perl distribution, it's useful to look at t/lib/commonsense.t.
Bundle dual life modules in ext/
For maintenance (and branch merging) reasons, it would be useful to move some architecture-independent dual-life modules from lib/ to ext/, if this has no negative impact on the build of perl itself.POSIX memory footprint
Ilya observed that use POSIX; eats memory like there's no tomorrow, and at various times worked to cut it down. There is probably still fat to cut out - for example POSIX passes Exporter some very memory hungry data structures.embed.pl/makedef.pl
There is a script embed.pl that generates several header files to prefix all of Perl's symbols in a consistent way, to provide some semblance of namespace support in "C". Functions are declared in embed.fnc, variables in interpvar.h. Quite a few of the functions and variables are conditionally declared there, using "#ifdef". However, embed.pl doesn't understand the C macros, so the rules about which symbols are present when is duplicated in makedef.pl. Writing things twice is bad, m'kay. It would be good to teach "embed.pl" to understand the conditional compilation, and hence remove the duplication, and the mistakes it has caused.use strict; and AutoLoad
Currently if you write
package Whack; use AutoLoader 'AUTOLOAD'; use strict; 1; __END__ sub bloop { print join (' ', No, strict, here), "!\n"; }
then "use strict;" isn't in force within the autoloaded subroutines. It would be more consistent (and less surprising) to arrange for all lexical pragmas in force at the __END__ block to be in force within each autoloaded subroutine.
There's a similar problem with SelfLoader.
profile installman
The installman script is slow. All it is doing text processing, which we're told is something Perl is good at. So it would be nice to know what it is doing that is taking so much CPU, and where possible address it.Tasks that need a little sysadmin-type knowledge
Or if you prefer, tasks that you would learn from, and broaden your skills base...make HTML install work
There is an "installhtml" target in the Makefile. It's marked as ``experimental''. It would be good to get this tested, make it work reliably, and remove the ``experimental'' tag. This would include- 1.
- Checking that cross linking between various parts of the documentation works. In particular that links work between the modules (files with POD in lib/) and the core documentation (files in pod/)
- 2.
-
Work out how to split "perlfunc" into chunks, preferably one per function
group, preferably with general case code that could be used elsewhere.
Challenges here are correctly identifying the groups of functions that go
together, and making the right named external cross-links point to the right
page. Things to be aware of are "-X", groups such as "getpwnam" to
"endservent", two or more "=items" giving the different parameter lists, such
as
=item substr EXPR,OFFSET,LENGTH,REPLACEMENT =item substr EXPR,OFFSET,LENGTH =item substr EXPR,OFFSET
and different parameter lists having different meanings. (eg "select")
compressed man pages
Be able to install them. This would probably need a configure test to see how the system does compressed man pages (same directory/different directory? same filename/different filename), as well as tweaking the installman script to compress as necessary.Add a code coverage target to the Makefile
Make it easy for anyone to run Devel::Cover on the core's tests. The steps to do this manually are roughly- *
- do a normal "Configure", but include Devel::Cover as a module to install (see INSTALL for how to do this)
- *
-
make perl
- *
-
cd t; HARNESS_PERL_SWITCHES=-MDevel::Cover ./perl -I../lib harness
- *
- Process the resulting Devel::Cover database
This just give you the coverage of the .pms. To also get the C level coverage you need to
- *
- Additionally tell "Configure" to use the appropriate C compiler flags for "gcov"
- *
-
make perl.gcov
(instead of "make perl")
- *
- After running the tests run "gcov" to generate all the .gcov files. (Including down in the subdirectories of ext/
- *
- (From the top level perl directory) run "gcov2perl" on all the ".gcov" files to get their stats into the cover_db directory.
- *
- Then process the Devel::Cover database
It would be good to add a single switch to "Configure" to specify that you wanted to perform perl level coverage, and another to specify C level coverage, and have "Configure" and the Makefile do all the right things automatically.
Make Config.pm cope with differences between built and installed perl
Quite often vendors ship a perl binary compiled with their (pay-for) compilers. People install a free compiler, such as gcc. To work out how to build extensions, Perl interrogates %Config, so in this situation %Config describes compilers that aren't there, and extension building fails. This forces people into choosing between re-compiling perl themselves using the compiler they have, or only using modules that the vendor ships.It would be good to find a way teach "Config.pm" about the installation setup, possibly involving probing at install time or later, so that the %Config in a binary distribution better describes the installed machine, when the installed machine differs from the build machine in some significant way.
linker specification files
Some platforms mandate that you provide a list of a shared library's external symbols to the linker, so the core already has the infrastructure in place to do this for generating shared perl libraries. My understanding is that the GNU toolchain can accept an optional linker specification file, and restrict visibility just to symbols declared in that file. It would be good to extend makedef.pl to support this format, and to provide a means within "Configure" to enable it. This would allow Unix users to test that the export list is correct, and to build a perl that does not pollute the global namespace with private symbols.Cross-compile support
Currently "Configure" understands "-Dusecrosscompile" option. This option arranges for building "miniperl" for TARGET machine, so this "miniperl" is assumed then to be copied to TARGET machine and used as a replacement of full "perl" executable.This could be done little differently. Namely "miniperl" should be built for HOST and then full "perl" with extensions should be compiled for TARGET. This, however, might require extra trickery for %Config: we have one config first for HOST and then another for TARGET. Tools like MakeMaker will be mightily confused. Having around two different types of executables and libraries (HOST and TARGET) makes life interesting for Makefiles and shell (and Perl) scripts. There is $Config{run}, normally empty, which can be used as an execution wrapper. Also note that in some cross-compilation/execution environments the HOST and the TARGET do not see the same filesystem(s), the $Config{run} may need to do some file/directory copying back and forth.
roffitall
Make pod/roffitall be updated by pod/buildtoc.Split linker from compiler
Right now, Configure probes for two commands, and sets two variables:- *
-
"cc" (in cc.U)
This variable holds the name of a command to execute a C compiler which can resolve multiple global references that happen to have the same name. Usual values are cc and gcc. Fervent ANSI compilers may be called c89. AIX has xlc.
- *
-
"ld" (in dlsrc.U)
This variable indicates the program to be used to link libraries for dynamic loading. On some systems, it is ld. On ELF systems, it should be $cc. Mostly, we'll try to respect the hint file setting.
There is an implicit historical assumption from around Perl5.000alpha something, that $cc is also the correct command for linking object files together to make an executable. This may be true on Unix, but it's not true on other platforms, and there are a maze of work arounds in other places (such as Makefile.SH) to cope with this.
Ideally, we should create a new variable to hold the name of the executable linker program, probe for it in Configure, and centralise all the special case logic there or in hints files.
A small bikeshed issue remains - what to call it, given that $ld is already taken (arguably for the wrong thing now, but on SunOS 4.1 it is the command for creating dynamically-loadable modules) and $link could be confused with the Unix command line executable of the same name, which does something completely different. Andy Dougherty makes the counter argument "In parrot, I tried to call the command used to link object files and libraries into an executable link, since that's what my vaguely-remembered DOS and VMS experience suggested. I don't think any real confusion has ensued, so it's probably a reasonable name for perl5 to use."
"Alas, I've always worried that introducing it would make things worse, since now the module building utilities would have to look for $Config{link} and institute a fall-back plan if it weren't found." Although I can see that as confusing, given that $Config{d_link} is true when (hard) links are available.
Configure Windows using PowerShell
Currently, Windows uses hard-coded config files based to build the config.h for compiling Perl. Makefiles are also hard-coded and need to be hand edited prior to building Perl. While this makes it easy to create a perl.exe that works across multiple Windows versions, being able to accurately configure a perl.exe for a specific Windows versions and VS C++ would be a nice enhancement. With PowerShell available on Windows XP and up, this may now be possible. Step 1 might be to investigate whether this is possible and use this to clean up our current makefile situation. Step 2 would be to see if there would be a way to use our existing metaconfig units to configure a Windows Perl or whether we go in a separate direction and make it so. Of course, we all know what step 3 is.decouple -g and -DDEBUGGING
Currently Configure automatically adds "-DDEBUGGING" to the C compiler flags if it spots "-g" in the optimiser flags. The pre-processor directive "DEBUGGING" enables perl's command line <-D> options, but in the process makes perl slower. It would be good to disentangle this logic, so that C-level debugging with "-g" and Perl level debugging with "-D" can easily be enabled independently.Tasks that need a little C knowledge
These tasks would need a little C knowledge, but don't need any specific background or experience with XS, or how the Perl interpreter worksWeed out needless PERL_UNUSED_ARG
The C code uses the macro "PERL_UNUSED_ARG" to stop compilers warning about unused arguments. Often the arguments can't be removed, as there is an external constraint that determines the prototype of the function, so this approach is valid. However, there are some cases where "PERL_UNUSED_ARG" could be removed. Specifically- *
- The prototypes of (nearly all) static functions can be changed
- *
- Unused arguments generated by short cut macros are wasteful - the short cut macro used can be changed.
Modernize the order of directories in @INC
The way @INC is laid out by default, one cannot upgrade core (dual-life) modules without overwriting files. This causes problems for binary package builders. One possible proposal is laid out in this message: <http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2002-04/msg02380.html>.-Duse32bit*
Natively 64-bit systems need neither -Duse64bitint nor -Duse64bitall. On these systems, it might be the default compilation mode, and there is currently no guarantee that passing no use64bitall option to the Configure process will build a 32bit perl. Implementing -Duse32bit* options would be nice for perl 5.12.Profile Perl - am I hot or not?
The Perl source code is stable enough that it makes sense to profile it, identify and optimise the hotspots. It would be good to measure the performance of the Perl interpreter using free tools such as cachegrind, gprof, and dtrace, and work to reduce the bottlenecks they reveal.As part of this, the idea of pp_hot.c is that it contains the hot ops, the ops that are most commonly used. The idea is that by grouping them, their object code will be adjacent in the executable, so they have a greater chance of already being in the CPU cache (or swapped in) due to being near another op already in use.
Except that it's not clear if these really are the most commonly used ops. So as part of exercising your skills with coverage and profiling tools you might want to determine what ops really are the most commonly used. And in turn suggest evictions and promotions to achieve a better pp_hot.c.
One piece of Perl code that might make a good testbed is installman.
Allocate OPs from arenas
Currently all new OP structures are individually malloc()ed and free()d. All "malloc" implementations have space overheads, and are now as fast as custom allocates so it would both use less memory and less CPU to allocate the various OP structures from arenas. The SV arena code can probably be re-used for this.Note that Configuring perl with "-Accflags=-DPL_OP_SLAB_ALLOC" will use Perl_Slab_alloc() to pack optrees into a contiguous block, which is probably superior to the use of OP arenas, esp. from a cache locality standpoint. See ``Profile Perl - am I hot or not?''.
Improve win32/wince.c
Currently, numerous functions look virtually, if not completely, identical in both "win32/wince.c" and "win32/win32.c" files, which can't be good.Use secure CRT functions when building with VC8 on Win32
Visual C++ 2005 (VC++ 8.x) deprecated a number of CRT functions on the basis that they were ``unsafe'' and introduced differently named secure versions of them as replacements, e.g. instead of writing
FILE* f = fopen(__FILE__, "r");
one should now write
FILE* f; errno_t err = fopen_s(&f, __FILE__, "r");
Currently, the warnings about these deprecations have been disabled by adding -D_CRT_SECURE_NO_DEPRECATE to the CFLAGS. It would be nice to remove that warning suppressant and actually make use of the new secure CRT functions.
There is also a similar issue with POSIX CRT function names like fileno having been deprecated in favour of ISO C++ conformant names like _fileno. These warnings are also currently suppressed by adding -D_CRT_NONSTDC_NO_DEPRECATE. It might be nice to do as Microsoft suggest here too, although, unlike the secure functions issue, there is presumably little or no benefit in this case.
Fix POSIX::access() and chdir() on Win32
These functions currently take no account of DACLs and therefore do not behave correctly in situations where access is restricted by DACLs (as opposed to the read-only attribute).Furthermore, POSIX::access() behaves differently for directories having the read-only attribute set depending on what CRT library is being used. For example, the _access() function in the VC6 and VC7 CRTs (wrongly) claim that such directories are not writable, whereas in fact all directories are writable unless access is denied by DACLs. (In the case of directories, the read-only attribute actually only means that the directory cannot be deleted.) This CRT bug is fixed in the VC8 and VC9 CRTs (but, of course, the directory may still not actually be writable if access is indeed denied by DACLs).
For the chdir() issue, see ActiveState bug #74552: http://bugs.activestate.com/show_bug.cgi?id=74552
Therefore, DACLs should be checked both for consistency across CRTs and for the correct answer.
(Note that perl's -w operator should not be modified to check DACLs. It has been written so that it reflects the state of the read-only attribute, even for directories (whatever CRT is being used), for symmetry with chmod().)
strcat(), strcpy(), strncat(), strncpy(), sprintf(), vsprintf()
Maybe create a utility that checks after each libperl.a creation that none of the above (nor sprintf(), vsprintf(), or *SHUDDER* gets()) ever creep back to libperl.a.
nm libperl.a | ./miniperl -alne '$o = $F[0] if /:$/; print "$o $F[1]" if $F[0] eq "U" && $F[1] =~ /^(?:strn?c(?:at|py)|v?sprintf|gets)$/'
Note, of course, that this will only tell whether your platform is using those naughty interfaces.
-D_FORTIFY_SOURCE=2, -fstack-protector
Recent glibcs support "-D_FORTIFY_SOURCE=2" and recent gcc (4.1 onwards?) supports "-fstack-protector", both of which give protection against various kinds of buffer overflow problems. These should probably be used for compiling Perl whenever available, Configure and/or hints files should be adjusted to probe for the availability of these features and enable them as appropriate.Arenas for GPs? For MAGIC?
"struct gp" and "struct magic" are both currently allocated by "malloc". It might be a speed or memory saving to change to using arenas. Or it might not. It would need some suitable benchmarking first. In particular, "GP"s can probably be changed with minimal compatibility impact (probably nothing outside of the core, or even outside of gv.c allocates them), but they probably aren't allocated/deallocated often enough for a speed saving. Whereas "MAGIC" is allocated/deallocated more often, but in turn, is also something more externally visible, so changing the rules here may bite external code.Shared arenas
Several SV body structs are now the same size, notably PVMG and PVGV, PVAV and PVHV, and PVCV and PVFM. It should be possible to allocate and return same sized bodies from the same actual arena, rather than maintaining one arena for each. This could save 4-6K per thread, of memory no longer tied up in the not-yet-allocated part of an arena.Tasks that need a knowledge of XS
These tasks would need C knowledge, and roughly the level of knowledge of the perl API that comes from writing modules that use XS to interface to C.Remove the use of SVs as temporaries in dump.c
dump.c contains debugging routines to dump out the contains of perl data structures, such as "SV"s, "AV"s and "HV"s. Currently, the dumping code uses "SV"s for its temporary buffers, which was a logical initial implementation choice, as they provide ready made memory handling.However, they also lead to a lot of confusion when it happens that what you're trying to debug is seen by the code in dump.c, correctly or incorrectly, as a temporary scalar it can use for a temporary buffer. It's also not possible to dump scalars before the interpreter is properly set up, such as during ithreads cloning. It would be good to progressively replace the use of scalars as string accumulation buffers with something much simpler, directly allocated by "malloc". The dump.c code is (or should be) only producing 7 bit US-ASCII, so output character sets are not an issue.
Producing and proving an internal simple buffer allocation would make it easier to re-write the internals of the PerlIO subsystem to avoid using "SV"s for its buffers, use of which can cause problems similar to those of dump.c, at similar times.
safely supporting POSIX SA_SIGINFO
Some years ago Jarkko supplied patches to provide support for the POSIX SA_SIGINFO feature in Perl, passing the extra data to the Perl signal handler.Unfortunately, it only works with ``unsafe'' signals, because under safe signals, by the time Perl gets to run the signal handler, the extra information has been lost. Moreover, it's not easy to store it somewhere, as you can't call mutexs, or do anything else fancy, from inside a signal handler.
So it strikes me that we could provide safe SA_SIGINFO support
- 1.
- Provide global variables for two file descriptors
- 2.
- When the first request is made via "sigaction" for "SA_SIGINFO", create a pipe, store the reader in one, the writer in the other
- 3.
-
In the ``safe'' signal handler ("Perl_csighandler()"/"S_raise_signal()"), if
the "siginfo_t" pointer non-"NULL", and the writer file handle is open,
-
- 1.
- serialise signal number, "struct siginfo_t" (or at least the parts we care about) into a small auto char buff
- 2.
-
"write()" that (non-blocking) to the writer fd
-
- 1.
- if it writes 100%, flag the signal in a counter of ``signals on the pipe'' akin to the current per-signal-number counts
- 2.
- if it writes 0%, assume the pipe is full. Flag the data as lost?
- 3.
- if it writes partially, croak a panic, as your OS is broken.
-
-
- 4.
- in the regular "PERL_ASYNC_CHECK()" processing, if there are ``signals on the pipe'', read the data out, deserialise, build the Perl structures on the stack (code in "Perl_sighandler()", the ``unsafe'' handler), and call as usual.
I think that this gets us decent "SA_SIGINFO" support, without the current risk of running Perl code inside the signal handler context. (With all the dangers of things like "malloc" corruption that that currently offers us)
For more information see the thread starting with this message: http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2008-03/msg00305.html
autovivification
Make all autovivification consistent w.r.t LVALUE/RVALUE and strict/no strict;This task is incremental - even a little bit of work on it will help.
Unicode in Filenames
chdir, chmod, chown, chroot, exec, glob, link, lstat, mkdir, open, opendir, qx, readdir, readlink, rename, rmdir, stat, symlink, sysopen, system, truncate, unlink, utime, -X. All these could potentially accept Unicode filenames either as input or output (and in the case of system and qx Unicode in general, as input or output to/from the shell). Whether a filesystem - an operating system pair understands Unicode in filenames varies.Known combinations that have some level of understanding include Microsoft NTFS, Apple HFS+ (In Mac OS 9 and X) and Apple UFS (in Mac OS X), NFS v4 is rumored to be Unicode, and of course Plan 9. How to create Unicode filenames, what forms of Unicode are accepted and used (UCS-2, UTF-16, UTF-8), what (if any) is the normalization form used, and so on, varies. Finding the right level of interfacing to Perl requires some thought. Remember that an OS does not implicate a filesystem.
(The Windows -C command flag ``wide API support'' has been at least temporarily retired in 5.8.1, and the -C has been repurposed, see perlrun.)
Most probably the right way to do this would be this: ``Virtualize operating system access''.
Unicode in %ENV
Currently the %ENV entries are always byte strings. See ``Virtualize operating system access''.Unicode and glob()
Currently glob patterns and filenames returned from File::Glob::glob() are always byte strings. See ``Virtualize operating system access''.Unicode and lc/uc operators
Some built-in operators ("lc", "uc", etc.) behave differently, based on what the internal encoding of their argument is. That should not be the case. Maybe add a pragma to switch behaviour.use less 'memory'
Investigate trade offs to switch out perl's choices on memory usage. Particularly perl should be able to give memory back.This task is incremental - even a little bit of work on it will help.
Re-implement :unique in a way that is actually thread-safe
The old implementation made bad assumptions on several levels. A good 90% solution might be just to make ":unique" work to share the string buffer of SvPVs. That way large constant strings can be shared between ithreads, such as the configuration information in Config.Make tainting consistent
Tainting would be easier to use if it didn't take documented shortcuts and allow taint to ``leak'' everywhere within an expression.readpipe(LIST)
system() accepts a LIST syntax (and a PROGRAM LIST syntax) to avoid running a shell. readpipe() (the function behind qx//) could be similarly extended.Audit the code for destruction ordering assumptions
Change 25773 notes
/* Need to check SvMAGICAL, as during global destruction it may be that AvARYLEN(av) has been freed before av, and hence the SvANY() pointer is now part of the linked list of SV heads, rather than pointing to the original body. */ /* FIXME - audit the code for other bugs like this one. */
adding the "SvMAGICAL" check to
if (AvARYLEN(av) && SvMAGICAL(AvARYLEN(av))) { MAGIC *mg = mg_find (AvARYLEN(av), PERL_MAGIC_arylen);
Go through the core and look for similar assumptions that SVs have particular types, as all bets are off during global destruction.
Extend PerlIO and PerlIO::Scalar
PerlIO::Scalar doesn't know how to truncate(). Implementing this would require extending the PerlIO vtable.Similarly the PerlIO vtable doesn't know about formats (write()), or about stat(), or chmod()/chown(), utime(), or flock().
(For PerlIO::Scalar it's hard to see what e.g. mode bits or ownership would mean.)
PerlIO doesn't do directories or symlinks, either: mkdir(), rmdir(), opendir(), closedir(), seekdir(), rewinddir(), glob(); symlink(), readlink().
See also ``Virtualize operating system access''.
-C on the #! line
It should be possible to make -C work correctly if found on the #! line, given that all perl command line options are strict ASCII, and -C changes only the interpretation of non-ASCII characters, and not for the script file handle. To make it work needs some investigation of the ordering of function calls during startup, and (by implication) a bit of tweaking of that order.Duplicate logic in S_method_common() and Perl_gv_fetchmethod_autoload()
A comment in "S_method_common" notes
/* This code tries to figure out just what went wrong with gv_fetchmethod. It therefore needs to duplicate a lot of the internals of that function. We can't move it inside Perl_gv_fetchmethod_autoload(), however, since that would cause UNIVERSAL->can("NoSuchPackage::foo") to croak, and we don't want that. */
If "Perl_gv_fetchmethod_autoload" gets rewritten to take (more) flag bits, then it ought to be possible to move the logic from "S_method_common" to the ``right'' place. When making this change it would probably be good to also pass in at least the method name length, if not also pre-computed hash values when known. (I'm contemplating a plan to pre-compute hash values for common fixed strings such as "ISA" and pass them in to functions.)
Organize error messages
Perl's diagnostics (error messages, see perldiag) could use reorganizing and formalizing so that each error message has its stable-for-all-eternity unique id, categorized by severity, type, and subsystem. (The error messages would be listed in a datafile outside of the Perl source code, and the source code would only refer to the messages by the id.) This clean-up and regularizing should apply for all croak() messages.This would enable all sorts of things: easier translation/localization of the messages (though please do keep in mind the caveats of Locale::Maketext about too straightforward approaches to translation), filtering by severity, and instead of grepping for a particular error message one could look for a stable error id. (Of course, changing the error messages by default would break all the existing software depending on some particular error message...)
This kind of functionality is known as message catalogs. Look for inspiration for example in the catgets() system, possibly even use it if available--- but only if available, all platforms will not have catgets().
For the really pure at heart, consider extending this item to cover also the warning messages (see perllexwarn, "warnings.pl").
Tasks that need a knowledge of the interpreter
These tasks would need C knowledge, and knowledge of how the interpreter works, or a willingness to learn.forbid labels with keyword names
Currently "goto keyword" ``computes'' the label value:
$ perl -e 'goto print' Can't find label 1 at -e line 1.
It would be nice to forbid labels with keyword names, to avoid confusion.
truncate() prototype
The prototype of truncate() is currently $$. It should probably be "*$" instead. (This is changed in opcode.pl)decapsulation of smart match argument
Currently "$foo ~~ $object" will die with the message ``Smart matching a non-overloaded object breaks encapsulation''. It would be nice to allow to bypass this by using explictly the syntax "$foo ~~ %$object" or "$foo ~~ @$object".error reporting of [$a ; $b]
Using ";" inside brackets is a syntax error, and we don't propose to change that by giving it any meaning. However, it's not reported very helpfully:
$ perl -e '$a = [$b; $c];' syntax error at -e line 1, near "$b;" syntax error at -e line 1, near "$c]" Execution of -e aborted due to compilation errors.
It should be possible to hook into the tokeniser or the lexer, so that when a ";" is parsed where it is not legal as a statement terminator (ie inside "{}" used as a hashref, "[]" or "()") it issues an error something like ';' isn't legal inside an expression - if you need multiple statements use a do {...} block. See the thread starting at http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2008-09/msg00573.html
lexicals used only once
This warns:
$ perl -we '$pie = 42' Name "main::pie" used only once: possible typo at -e line 1.
This does not:
$ perl -we 'my $pie = 42'
Logically all lexicals used only once should warn, if the user asks for warnings. An unworked RT ticket (#5087) has been open for almost seven years for this discrepancy.
UTF-8 revamp
The handling of Unicode is unclean in many places. For example, the regexp engine matches in Unicode semantics whenever the string or the pattern is flagged as UTF-8, but that should not be dependent on an internal storage detail of the string. Likewise, case folding behaviour is dependent on the UTF8 internal flag being on or off.Properly Unicode safe tokeniser and pads.
The tokeniser isn't actually very UTF-8 clean. "use utf8;" is a hack - variable names are stored in stashes as raw bytes, without the utf-8 flag set. The pad API only takes a "char *" pointer, so that's all bytes too. The tokeniser ignores the UTF-8-ness of "PL_rsfp", or any SVs returned from source filters. All this could be fixed.state variable initialization in list context
Currently this is illegal:
state ($a, $b) = foo();
In Perl 6, "state ($a) = foo();" and "(state $a) = foo();" have different semantics, which is tricky to implement in Perl 5 as currently they produce the same opcode trees. The Perl 6 design is firm, so it would be good to implement the necessary code in Perl 5. There are comments in "Perl_newASSIGNOP()" that show the code paths taken by various assignment constructions involving state variables.
Implement $value ~~ 0 .. $range
It would be nice to extend the syntax of the "~~" operator to also understand numeric (and maybe alphanumeric) ranges.A does() built-in
Like ref(), only useful. It would call the "DOES" method on objects; it would also tell whether something can be dereferenced as an array/hash/etc., or used as a regexp, etc. <http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2007-03/msg00481.html>Tied filehandles and write() don't mix
There is no method on tied filehandles to allow them to be called back by formats.Propagate compilation hints to the debugger
Currently a debugger started with -dE on the command-line doesn't see the features enabled by -E. More generally hints ($^H and "%^H") aren't propagated to the debugger. Probably it would be a good thing to propagate hints from the innermost non-"DB::" scope: this would make code eval'ed in the debugger see the features (and strictures, etc.) currently in scope.Attach/detach debugger from running program
The old perltodo notes "With "gdb", you can attach the debugger to a running program if you pass the process ID. It would be good to do this with the Perl debugger on a running Perl program, although I'm not sure how it would be done." ssh and screen do this with named pipes in /tmp. Maybe we can too.LVALUE functions for lists
The old perltodo notes that lvalue functions don't work for list or hash slices. This would be good to fix.regexp optimiser optional
The regexp optimiser is not optional. It should configurable to be, to allow its performance to be measured, and its bugs to be easily demonstrated.delete &function
Allow to delete functions. One can already undef them, but they're still in the stash./w regex modifier
That flag would enable to match whole words, and also to interpolate arrays as alternations. With it, "/P/w" would be roughly equivalent to:
do { local $"='|'; /\b(?:P)\b/ }
See <http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2007-01/msg00400.html> for the discussion.
optional optimizer
Make the peephole optimizer optional. Currently it performs two tasks as it walks the optree - genuine peephole optimisations, and necessary fixups of ops. It would be good to find an efficient way to switch out the optimisations whilst keeping the fixups.You WANT *how* many
Currently contexts are void, scalar and list. split has a special mechanism in place to pass in the number of return values wanted. It would be useful to have a general mechanism for this, backwards compatible and little speed hit. This would allow proposals such as short circuiting sort to be implemented as a module on CPAN.lexical aliases
Allow lexical aliases (maybe via the syntax "my \$alias = \$foo".entersub XS vs Perl
At the moment pp_entersub is huge, and has code to deal with entering both perl and XS subroutines. Subroutine implementations rarely change between perl and XS at run time, so investigate using 2 ops to enter subs (one for XS, one for perl) and swap between if a sub is redefined.Self-ties
Self-ties are currently illegal because they caused too many segfaults. Maybe the causes of these could be tracked down and self-ties on all types reinstated.Optimize away @_
The old perltodo notes ``Look at the ''reification" code in "av.c"".The yada yada yada operators
Perl 6's Synopsis 3 says:The ... operator is the ``yada, yada, yada'' list operator, which is used as the body in function prototypes. It complains bitterly (by calling fail) if it is ever executed.
Those would be nice to add to Perl 5. That could be done without new ops.
Virtualize operating system access
Implement a set of ``vtables'' that virtualizes operating system access (open(), mkdir(), unlink(), readdir(), getenv(), etc.) At the very least these interfaces should take SVs as ``name'' arguments instead of bare char pointers; probably the most flexible and extensible way would be for the Perl-facing interfaces to accept HVs. The system needs to be per-operating-system and per-file-system hookable/filterable, preferably both from XS and Perl level (``Files and Filesystems'' in perlport is good reading at this point, in fact, all of perlport is.)This has actually already been implemented (but only for Win32), take a look at iperlsys.h and win32/perlhost.h. While all Win32 variants go through a set of ``vtables'' for operating system access, non-Win32 systems currently go straight for the POSIX/UNIX-style system/library call. Similar system as for Win32 should be implemented for all platforms. The existing Win32 implementation probably does not need to survive alongside this proposed new implementation, the approaches could be merged.
What would this give us? One often-asked-for feature this would enable is using Unicode for filenames, and other ``names'' like %ENV, usernames, hostnames, and so forth. (See ``When Unicode Does Not Happen'' in perlunicode.)
But this kind of virtualization would also allow for things like virtual filesystems, virtual networks, and ``sandboxes'' (though as long as dynamic loading of random object code is allowed, not very safe sandboxes since external code of course know not of Perl's vtables). An example of a smaller ``sandbox'' is that this feature can be used to implement per-thread working directories: Win32 already does this.
See also ``Extend PerlIO and PerlIO::Scalar''.
Investigate PADTMP hash pessimisation
The peephole optimiser converts constants used for hash key lookups to shared hash key scalars. Under ithreads, something is undoing this work. See http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2007-09/msg00793.htmlStore the current pad in the OP slab allocator
Currently we leak ops in various cases of parse failure. I suggested that we could solve this by always using the op slab allocator, and walking it to free ops. Dave comments that as some ops are already freed during optree creation one would have to mark which ops are freed, and not double free them when walking the slab. He notes that one problem with this is that for some ops you have to know which pad was current at the time of allocation, which does change. I suggested storing a pointer to the current pad in the memory allocated for the slab, and swapping to a new slab each time the pad changes. Dave thinks that this would work.repack the optree
Repacking the optree after execution order is determined could allow removal of NULL ops, and optimal ordering of OPs with respect to cache-line filling. The slab allocator could be reused for this purpose. I think that the best way to do this is to make it an optional step just before the completed optree is attached to anything else, and to use the slab allocator unchanged, so that freeing ops is identical whether or not this step runs. Note that the slab allocator allocates ops downwards in memory, so one would have to actually ``allocate'' the ops in reverse-execution order to get them contiguous in memory in execution order.See http://www.nntp.perl.org/group/perl.perl5.porters/2007/12/msg131975.html
Note that running this copy, and then freeing all the old location ops would cause their slabs to be freed, which would eliminate possible memory wastage if the previous suggestion is implemented, and we swap slabs more frequently.
eliminate incorrect line numbers in warnings
This code
use warnings; my $undef; if ($undef == 3) { } elsif ($undef == 0) { }
used to produce this output:
Use of uninitialized value in numeric eq (==) at wrong.pl line 4. Use of uninitialized value in numeric eq (==) at wrong.pl line 4.
where the line of the second warning was misreported - it should be line 5. Rafael fixed this - the problem arose because there was no nextstate OP between the execution of the "if" and the "elsif", hence "PL_curcop" still reports that the currently executing line is line 4. The solution was to inject a nextstate OPs for each "elsif", although it turned out that the nextstate OP needed to be a nulled OP, rather than a live nextstate OP, else other line numbers became misreported. (Jenga!)
The problem is more general than "elsif" (although the "elsif" case is the most common and the most confusing). Ideally this code
use warnings; my $undef; my $a = $undef + 1; my $b = $undef + 1;
would produce this output
Use of uninitialized value $undef in addition (+) at wrong.pl line 4. Use of uninitialized value $undef in addition (+) at wrong.pl line 7.
(rather than lines 4 and 5), but this would seem to require every OP to carry (at least) line number information.
What might work is to have an optional line number in memory just before the BASEOP structure, with a flag bit in the op to say whether it's present. Initially during compile every OP would carry its line number. Then add a late pass to the optimiser (potentially combined with ``repack the optree'') which looks at the two ops on every edge of the graph of the execution path. If the line number changes, flags the destination OP with this information. Once all paths are traced, replace every op with the flag with a nextstate-light op (that just updates "PL_curcop"), which in turn then passes control on to the true op. All ops would then be replaced by variants that do not store the line number. (Which, logically, why it would work best in conjunction with ``repack the optree'', as that is already copying/reallocating all the OPs)
(Although I should note that we're not certain that doing this for the general case is worth it)
optimize tail-calls
Tail-calls present an opportunity for broadly applicable optimization; anywhere that "return foo(...)" is called, the outer return can be replaced by a goto, and foo will return directly to the outer caller, saving (conservatively) 25% of perl's call&return cost, which is relatively higher than in C. The scheme language is known to do this heavily. B::Concise provides good insight into where this optimization is possible, ie anywhere entersub,leavesub op-sequence occurs.
perl -MO=Concise,-exec,a,b,-main -e 'sub a{ 1 }; sub b {a()}; b(2)'
Bottom line on this is probably a new pp_tailcall function which combines the code in pp_entersub, pp_leavesub. This should probably be done 1st in XS, and using B::Generate to patch the new OP into the optrees.
\N
It should be possible to add a "\N" regex assertion, meaning "every character except "\n"AX independently of the context. That would of course imply that "\N" couldn't be followed by an opening "{".Big projects
Tasks that will get your name mentioned in the description of the ``Highlights of 5.12''make ithreads more robust
Generally make ithreads more robust. See also ``iCOW''This task is incremental - even a little bit of work on it will help, and will be greatly appreciated.
One bit would be to write the missing code in sv.c:Perl_dirp_dup.
Fix Perl_sv_dup, et al so that threads can return objects.
iCOW
Sarathy and Arthur have a proposal for an improved Copy On Write which specifically will be able to COW new ithreads. If this can be implemented it would be a good thing.(?{...}) closures in regexps
Fix (or rewrite) the implementation of the "/(?{...})/" closures.A re-entrant regexp engine
This will allow the use of a regex from inside (?{ }), (??{ }) and (?(?{ })|) constructs.Add class set operations to regexp engine
Apparently these are quite useful. Anyway, Jeffery Friedl wants them.demerphq has this on his todo list, but right at the bottom.
Tasks for microperl
[ Each and every one of these may be obsolete, but they were listedin the old Todo.micro file]
make creating uconfig.sh automatic
make creating Makefile.micro automatic
do away with fork/exec/wait?
(system, popen should be enough?)some of the uconfig.sh really needs to be probed (using cc) in buildtime:
(uConfigure? :-) native datatype widths and endianness come to mind
Index
- NAME
- DESCRIPTION
- Tasks that only need Perl knowledge
-
- Remove macperl references from tests
- Remove duplication of test setup.
- POD -> HTML conversion in the core still sucks
- Make ExtUtils::ParseXS use strict;
- Parallel testing
- Make Schwern poorer
- Improve the coverage of the core tests
- test B
- A decent benchmark
- fix tainting bugs
- Dual life everything
- Bundle dual life modules in ext/
- POSIX memory footprint
- embed.pl/makedef.pl
- use strict; and AutoLoad
- profile installman
- Tasks that need a little sysadmin-type knowledge
-
- make HTML install work
- compressed man pages
- Add a code coverage target to the Makefile
- Make Config.pm cope with differences between built and installed perl
- linker specification files
- Cross-compile support
- roffitall
- Split linker from compiler
- Configure Windows using PowerShell
- decouple -g and -DDEBUGGING
- Tasks that need a little C knowledge
-
- Weed out needless PERL_UNUSED_ARG
- Modernize the order of directories in @INC
- -Duse32bit*
- Profile Perl - am I hot or not?
- Allocate OPs from arenas
- Improve win32/wince.c
- Use secure CRT functions when building with VC8 on Win32
- Fix POSIX::access() and chdir() on Win32
- strcat(), strcpy(), strncat(), strncpy(), sprintf(), vsprintf()
- -D_FORTIFY_SOURCE=2, -fstack-protector
- Arenas for GPs? For MAGIC?
- Shared arenas
- Tasks that need a knowledge of XS
-
- Remove the use of SVs as temporaries in dump.c
- safely supporting POSIX SA_SIGINFO
- autovivification
- Unicode in Filenames
- Unicode in %ENV
- Unicode and glob()
- Unicode and lc/uc operators
- use less 'memory'
- Re-implement :unique in a way that is actually thread-safe
- Make tainting consistent
- readpipe(LIST)
- Audit the code for destruction ordering assumptions
- Extend PerlIO and PerlIO::Scalar
- -C on the #! line
- Duplicate logic in S_method_common() and Perl_gv_fetchmethod_autoload()
- Organize error messages
- Tasks that need a knowledge of the interpreter
-
- forbid labels with keyword names
- truncate() prototype
- decapsulation of smart match argument
- error reporting of [$a ; $b]
- lexicals used only once
- UTF-8 revamp
- Properly Unicode safe tokeniser and pads.
- state variable initialization in list context
- Implement $value ~~ 0 .. $range
- A does() built-in
- Tied filehandles and write() don't mix
- Propagate compilation hints to the debugger
- Attach/detach debugger from running program
- LVALUE functions for lists
- regexp optimiser optional
- delete &function
- /w regex modifier
- optional optimizer
- You WANT *how* many
- lexical aliases
- entersub XS vs Perl
- Self-ties
- Optimize away @_
- The yada yada yada operators
- Virtualize operating system access
- Investigate PADTMP hash pessimisation
- Store the current pad in the OP slab allocator
- repack the optree
- eliminate incorrect line numbers in warnings
- optimize tail-calls
- \N
- Big projects
- Tasks for microperl
This document was created by man2html, using the manual pages.
Time: 05:29:09 GMT, December 24, 2015


Chapter 15
A GREAT GENERATION
We can observe certain characteristics which seem to have
been passed into the next generation. Mary Ellen and I had driven across
We arrived tired, hungry and late for the meal. I filled a plate at the buffet and joined the group. When I went back for my drink, my first cousin, John, also know as Claus, had finished his first plate, had taken my plate and was eating my carefully selected food. I was left with no choice but to go for another plate. In my after the meal conversation with John about this kind of jokery, we realized how Warner this kind of behavior is.
I remembered that when I was very young we had driven to
|
We have only this picture of Louisa Belle to illustrate her sense of humor. She could clown around and have a good time. Aunt Ethel told this story about her brothers. While she was being fitted with the yellow organdy dress for RJ s wedding her mother had said every time she wanted to try it on her, she was out with the boys who were helping her father with building a large barn. One time they called her mother to come see Ethel. What she saw was Ethel sitting up high on the peak of the barn (one of the boys was hidden behind her). Juanita (Warner) She wrote: Once I wanted a watch for my birthday. I showed Grandfather a |
birthday and showed grandpa the My Grandmother Louisa Belle Warner
picture in the catalog. On my birthday,
there was a package for me from him at the post office. My girlfriend went with me to get
it. When I opened the box, inside was the picture of the watch cut from the Sears-Roebuck
catalog.
I would play cards rummy with Uncle Hubert and Grandfather. I learned I had to
watch him. I thought I was winning, but my score was the lowest. It turned out that
Grandfather was subtracting my score instead of adding to it. Being around Grandfather,
I could see how the twins got to be so ornery.
Some of the stories about the twins include changing places on dates, even fooling family by changing shirts and ties at reunions. Once in a school debate RJ argued for both sides to cover for Roger, and the teacher did not believe that he had, until his mother confirmed the story.
Shortly after RB began teaching in Ashley, RJ and Esther stopped at the Ashley Post Office on the way to visit RB and Jesse. The rumor quickly spread that RB was with another woman. RJ had to attend a board meeting in Ashley to squelch the rumor.
In later years when RJ and RB were both school superintendents attending various meetings around the state, one would often be mistaken for the other brother. They would carry on a conversation and never tell the person they were the twin of the person they thought they were talking with. Both Juanita and Elvira called their Dad s twin Two Daddy. They had a lot of fun from being twins.
Rodney J. Warner Family
|
|
Rodney Johnson graduated from Ohio State BS, 1924,
and MA, 1927. He taught in He served terms as president of Tecumseh Council, Boy
Scouts of America and the Xenia Rotary Club. He was a member of Xenia Chamber
of Commerce, YMCA, American School Administrators, Mason, Eastern Star, and
American Legion. He was a lay speaker in the |
Esther, Bob, Dave,
Elvira & Rodney Warner
Roger Barton Warner Family
|
|
RB graduated from
OSU in1922 and a MA 1937. He began
teaching Vocational Agriculture at held in |
Front: Harvey, Paul, Juanita He was among the members inducted into the
Roger and Jesse Warner Central Ohio Senior Citizens Hall of Fame for his work as chairman in obtaining financing for Ashley Villa, a housing complex for the elderly.
Thurman Gilmore Warner Family
Seated from left: William, John,
Richard, Donald, Tom, Gene
Standing: Nancy, Jane, Ruth,
James, Joseph, Lenabelle, Joy May
Thurman Gilmore was a professional dairy farmer. Care of a
herd of cows included the raising and storage of food, daily feeding, milking
every morning and evening, breeding of new and productive stock, and
maintenance of sanitation as required by law. He was a general farmer, with
horses, hogs, chickens, and field crops. He operated a business, The Warner Pony
Farm in his later years. Joy May
(Warner)
Dear Bob,
Since I am the oldest twig on this branch I have called each sibling to ask for additions
and approval. I am not sure just how you plan to include this info from the various
families, but at least preserve the thought..
Our mother gave birth to 14 children; she and Dad reared 13 through high school age.
Needless to stay Mother never had to look for something to occupy her time! Many who
learn that I am the oldest assume I spent much time babysitting. Not so. Not so for my
sisters either. Our parents were full time supervisors. We were given various
responsibilities which did not burden us so that we had much opportunity to develop our
own interests. We do laugh about Tom asking Dad, "Now that I am going to go to first
grade, what are my jobs?"
During family growing up years Mother was at home. Once that task was completed she
became active in local clubs, especially Grange. We remember her love for crafts, and
for reading which was most often done after the youngest ones were in bed. She was able
to knit an article with simple stitches and read a book while doing so!
Canning our garden produce was a big deal. Dad cut a 50 gallon metal drum in half. In
one of the halves he place crushed wire to keep the jars off the bottom, filled it with
water, built a fire under it which had to be tended to keep the water boiling during the
canning process. I do not recall canning time or the number of jars that would fit in the
barrel. Our younger family members do not remember this because the pressure canner
came into being. We also canned beef chunks which were good with noodles or for
making a super sandwich filling when ground and seasoned. That canning was replaced
when freezing meat came along. We also canned wheat kernels just as they came from
the field which made an excellent breakfast dish. I recall in later year Uncle Hildred found
a place to buy the product and felt it worth the price to again enjoy real whole wheat.
We are thankful for parents who taught us to love, to respect, to enjoy each other, and to
even tolerate when necessary. Family unity was important. Early in 1986 we no longer
could go home so
we made arrangements with a
meeting room for Warners on the second Tuesday of each month and We have
continued meeting there all these years. The group includes not only siblings and
spouses but often nieces and nephews and sometimes their children. At times cousins
have joined us for an enjoyable evening. We consider this practice a living memorial to
our parents who
taught us family is important. Joy May (Warner)
James Hubert Family
|
James Hubert was a Vocational Agriculture teacher, County Extension Agent and Superintendent of the Beef Cattle and the 4-H Beef Cattle Show Departments at the Ohio State Fair. Hubert was active in the Lima Kiwanis Club, Grange, and
Masons. He was a member of the advisory board that recommended the site for
the Lima Tank Plant, |
Front row from left: Hubert, Helen, & MH. Specialist at The
Back: Shirley, Dorothy & Myron He was well known as a judge at
many county fairs in
surrounding states. He was the advisor for building a number of automated cattle feed lots around the country and operated one with his brother Roger. (See feed lot picture page 95)
Shirley and Dorothy share some of Hubert's favorite one liners that he used when they were growing up.
1. There is always room for improvement! (He always said this on a straight A report
card.) 2. Live so you don't have any regrets. 3. Smartest thing he ever did, he'd say,
was to marry Helen Louise Borst. 4. His favorite question was do you think you'll
ever amount to anything? 5. He always urged that in everything use moderation.
6. He always would rather make money than spend it and one of his goals was to have
a million dollars all at once!
Probably the most out of character thing he did was buying a 1955 red & yellow
Mercury without any input from anyone. (Mom always chose the color - because
he was color blind).  Then the first year that Mercury came out with a push button gear shift mounted
on the dash, he bought a silver and black one on which the gears kept sticking. Again,
no input from anyone!  He did it with cars and nobody was ever hurt.
Cousins Shirley and Dorothy
Dorothy (Warner) Stoyer provided a description of what the Warner wives did with their time. She wrote about her mother:
She always had a "project" to do. She kept an immaculate home, was a great cook &
baker, made all our clothes when we were young, was a Brownie and Girl Scout
leader, was a 4-H
Club leader of the Lima Peppy Peppers Club, taught Sunday school
at
tomatoes - either whole or juice, beets, lima beans, corn, cherries, peaches, quinces,
kraut, pork, beef, several kinds of jelly, pickles, apple butter, peach butter, Swiss chard
and grape juice. We always had big gardens until the folks couldn't care for it.
No one ever left our house hungry.
Mother also knitted sox and gloves for the Red Cross to go to soldiers during the war
and crocheted edging and doilies of all sizes to give as gifts. Her New Year's project
was to start and finish a pair of pillowcases for good luck, usually crocheted on the
hem or embroidered over a lovely pattern she had stamped on the fabric.
Mom s way of teaching was to do it right along with you. Sewing, cleaning and
cooking were often done together so we would learn the "proper" way. . She also had
unbelievable patience. From my mom, I learned to always help those around you. From
Dad we learned to do everything in moderation and even with a perfect report card he
would always remind us that there was always room for improvement! D Stoyer
Hildred Harvey Warner Family
|
HH was a member of the swine judging `team which took
first place in the national collegiate contest, and a member of the general
livestock judging team which was second at He taught in He worked as a meat salesman for Armour & Co. and served as Mayor of Arlington, Ohio, 1850-1951. |
|
Hildred Harvey Warner Family
Mildred remembers
there Front row from left: Linda, Rheumilla,
Hildred
were many night callers Back row: Duane, Deanna, & Mildred
during the time he
was
mayor when state
police would pick up traffic violators who needed to appear before an official
before getting back on the road.
HH returned to teaching at
|
Linda (Warner) Bischof
titled this creative artwork as, Dad s
Pride and Joy. Uncle Hildred was a true Ohio Stater! His son Duane was on the varsity football team for four years. |
HH carved OHIO STATE into his hedge
in Arlington, Ohio
Rheumilla attended
Shirley Ethel (Warner) and Eskham Hayes Family
|
Shirley Ethel attended She was dating Eskham when RB was dating Marie. They alternated weekends as to who would stay with the kids. Ethel wrote, I belong to the Roofers Union since it covered everything. She was a U S Census taker, substitute at a school cafeteria and a judge for the election board and 4-H advisor.
The Eskham Hayes Family
Eskham and Ethel seated holding Eskham Jr. and Shirley.
Standing . Maxine left and Mary Lou right
|
|
Eskham did many odd jobs, as a boy. He made a good
impression on the owner of a grocery/general store who employed him to work in
his store. He worked for five years for $5.00 a week. During the summer he
opened the store at
In the summer of 1931-1932 he dug post holes, as many as a hundred a day, on farms that had been forced into foreclosure. He operated the local drugstore for $8.00 a week. Later he worked a couple of factory jobs. He was hired by Nestles in Sunbury, as an electrician s helper. He bought several books and soon became an electrician and refrigeration expert. Eskham s knowledge soon led to successful self-employment. He established the Hayes Electrical and Refrigeration Company with enough work for sons, sons-in-law, and grandsons.
The children of Mordecai Harvey and Louisa Belle were often encouraged with you can do better which is not exactly the positive reinforcement approach of a later day. There were rules. Break the rules expect the punishment. They were taught how to be self-reliant and self-disciplined. They were expected to measure up; there was a standard.
Mordecai Harvey (Harv) Warner
MH lived at
The morning I was born my Dad stayed home from work and sent my grandfather
to get the midwife who was to stay with Mom. I decided to make my entry before
the doctor got there, but not before Grandpa was brought back to the house without
Dad's car. In Grandpas hurry he ran the stop sign at St.Rt. 61 and hit a car. When
the doctor got to the house he stopped to see how bad Grandpa was hurt as he
was covered with blood from the nasty cut on his nose.  I really think that was the beginning of the special bond that we had.
Grandpa and I were always very close even as a small child, I would go out to the
barn with him as he took care of the sheep, and when I grew older I was the only
one who was excited to go with him to hive the bees. He always helped me find and
put on the "Bee Garb." I would always get stung several times and Grandpa would
always quickly take the stinger out and THEN he would do the grossest thing!
He would put his mouth on the sting and put tobacco juice on it! I mean on MY ARM
HE PUT THAT DISGUSTING TOBACCO JUICE!!! Then I would swell up a lot and
wheeze for the next several days, but the next time it was time to hive the bees I was
right beside Grandpa to do it again. The great reward of hiving bees was after we got
the honey gathered and the wax put in the boxes and the hives put back together again,
Grandpa and I would go in the house and Mom would have a meal ready and the
only thing I would eat was her wonderful warm homemade biscuits with butter and
fresh comb honey on it. What a wonderful mouth-watering meal!
I remember the day my Uncle Roger came and he and Mom told Grandpa that they
needed to take his car keys away from him so he would not drive. I was about nine
years old I think; I just remember how sad I was for the three of them as they were
all upset. I went out to the side yard and sat on the cistern and cried for all of them.
|
|
After that I called my grandpa a lot and we would have
long talks. Those long wonderful conversations on the phone taught me so
much. One conversation that really stands out to me was one Halloween when he
lived on
Years later shortly before Jack and I got married we were
driving around |
Grandpa, Mary Lou, Maxine of those boys!
Catherine died. Then as he lived with us I grew even closer to him and I took care of
him and spent time with him and watching him write in his beautiful penmanship that
he was so proud of. He used to tell me about teaching and walking miles to school and
of how life was so different while I was growing up.
He was loved by my brother and sisters, but they did not have the special bond with
him that I did, they did not spend as much time with him, nor did they care that
whenever Roger, Rodney, or Thurman would take Grandpa to "the hills" he always
brought me back glass dogs from the glass factory that he stopped at on the way home.
I still treasure them to this day.
|
I know that Grandpa had all of the other grand-children, but, HE, Mordecai Harvey Warner was MY GRANDPA and the rest of the grand- children s Grandpa. I was able to be his nurse as he wanted me to give him his insulin shot every day, and I was the one to tell him, no, he could not have any more candy. I would fix him special meals, cook rhubarb without sugar and even empty his spittoon UGH! |
I was even the
only one he would get up at
for him. I would storm out of bed and be so very mad and he would just smile at me.
Then he would thank me after I got his cereal ready and tell me maybe I should go back
to bed and get some rest.
When I think of my Grandpa, I think of an old man who use to bounce me on his
knee, hold my hand when we were outside and kept me safe and then -- I held his
hand, steadied him as he walked and I loved to sing hymns to him and tried to
make him happy. He was MY GRANDPA and I loved him so very much. I am so
blessed to have had him in my life. Maxine (Hayes) Stimmel
|
|
Mordecai Harvey Warner Father Teacher Farmer Builder Horse Breeder Sheep Breeder Bee Keeper Organizer Grandfather |
As I near the finish of this part of this book it is with the feeling that there is much more to be written about the contributions of my aunts and uncles and my parents. As I leave our story I encourage future generations to add their story to this five-century family history.
Go to Chapter:
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
12, 13,
14, 15,
16, 17


{{Infobox prepared food | alternate_name = | country = | region = | creator = | course = Dessert | type = Cake | served = | main_ingredient = Dried fruit, rum, sugar | variations = | calories = | other = }}
A rum cake is a type of dessert cake which contains rum. In most of the Caribbean, rum cakes are a traditional holiday season dessert, descended from the holiday puddings (such as figgy pudding). Traditionally, dried fruit is soaked in rum for months and then added to dough prepared with sugar which has been caramelized by boiling in water. The result, also known as "black cake", is similar to a fruitcake, with a lighter texture.
In St. Vincent and the Grenadines, a special wine, called Black wine is specially produced to be used in the making of black cake. Black cake is traditionally associated with Vincy Christmas.<ref> {{cite news
|publisher=The New York Times |title=A Fruitcake Soaked in Tropic Sun |url=http://www.nytimes.com/2007/12/19/dining/19cake.html |author=Julia Moskin |date=December 19, 2007 |accessdate=December 23, 2008
}}</ref>
In Puerto Rico, rum cake is called Bizcocho de Ron, and is a sponge cake, so as to absorb the rum. If fruit is added to it, it is fresh or dried. Raisins and sultanas may be soaked in rum for one day or one night. Bizcochos de Ron are given as gifts during the holiday season, but they are not considered an insulting gift, the way fruitcakes in the U.S. sometimes are.
It is possible to become intoxicated from consumption of excessive amount of rum cake, and some rum cakes such as Tortuga contain even more than five percent of certain grain alcohols.<ref>{{cite book |title=Food culture in the Caribbean |first=Lynn Marie |last=Houston |pages=64–65 |year=2005}}</ref> It is typically made with plums and raisins soaked in rum, as well as brown sugar and a bittersweet caramel called "browning".
{{reflist}}
{{Barbadian cuisine}} {{Cakes}}
{{DEFAULTSORT:Rum Cake}}
{{dessert-stub}}


Your payment has been successful
Reference number:
A123456
We will email you a receipt shortly.
Payment summary
| Payment of: | Venue hire for 1 day |
| Amount paid: | £4,643.00 |
A123456
We will email you a receipt shortly.
| Payment of: | Venue hire for 1 day |
| Amount paid: | £4,643.00 |


Battleships
Battleships is an implementation of the board game Battleships.
Created by: Lukas Mendel, Julian Sobott, Julien Wagler, Josua Weiß
Some of the features are:
- Play vs an AI
- Play over the network
- Simulate AI vs AI
- 3 different AI difficulty levels
- Cheatmode: Get tips where to shoot


Enter numbers in the colored text boxes to see how we can rewrite the same equation in different ways.
=
=
log () =
log()
log()
?
=
Smart fill mode:
Smart fill updates the third variable based on the previous two values you've entered.
Note: you can type functions like sqrt and log into the textboxes, but may encounter strange behavior during the process of typing the functions in due to the way the parser works. Please report bugs to<EMAIL_ADDRESS>Logarithm Guessing Game
Base 10 logs
Base 2 logs
Simple bases
Complicated bases
Fractional bases
Variable bases
Radical bases
Invalid bases (enter DNE if the problem doesn't make sense)
Fractional inputs
Radical inputs
Invalid inputs (enter DNE if the problem doesn't make sense)


Simple Portfolio Site
Display your work by coding an online portfolio site from scratch
There are many different ways to share your work online. If you are a web designer with front-end web development skills looking to showcase your talent, one of the best ways is to custom design and code your own portfolio site from scratch.
See a Demo
http://nma.kcc.hawaii.edu/gargiulo/tests/portfolios/customportfolio1/
View on Github
https://github.com/kccnma/teachingmaterials/tree/master/customportfolio1
View on Codepen
https://codepen.io/kccnma/pen/bLKKqV
Download Starter Files
http://nma.kcc.hawaii.edu/gargiulo/tests/portfolios/img.zip
Let's Code!
Get started by launching your favorite code editor (IDE)
Create a new HTML folder named "customportfolio"
Inside of your new directory, create a new index.html file and then download the provided portfolio images for this exercise. Next, create another new folder named "css" and inside of it create a new file named style.css. These two files (index.html and style.css) are the initial files that we will be editing. Once you are all setup, your local folder setup should look something like this:
Code, Save, Refresh, Repeat!
Start with Markup (HTML), then add Styling (CSS), then Repeat.
Ideally, you should code line-by-line and write every line of html and css from the source code below by hand. To speed up the process (for those with neither the time or patience), please feel free to copy-and-paste large blocks of code, one-at-a-time, in order. After each iteration (code block), be sure to hit save then preview your changes in the browser (refresh) before moving on the the next code block.
HTML
[gist https://gist.github.com/kccnma/0857a371f00861d41a1eb51a540a02d8 /]
...and also start with an empty style.css file with the following table of contents.
CSS
[gist https://gist.github.com/kccnma/3cf6e89485eb1ebc5c7ad62b96348ac5/]
Then add the following body contents:
- header
- navigation
- main
- one section with a bunch of images
- footer
- navigation
HTML
[gist https://gist.github.com/kccnma/70f8c36a2fbe8c8191c23701b20dd11f/]
Add in your HTML5 css (for IE8 and below) along with the least amount of main body and typography styling.
Notice how there is no css reset, nor a comprehensive typography setup. This minimal approach to custom (bespoke) development keeps your code lean by embracing browser defaults.
CSS
[gist https://gist.github.com/kccnma/498a473b872c07d584191e6745b404ff/]
Next add your structural css for your site header, nav, and footer.
CSS
[gist https://gist.github.com/kccnma/6da79245b1b6fbe9f7a0b61c7baf2fdf/]
Next, lets code a simple image grid from scratch, only instead of reverting to your safe go-to methods (e.g. inline-blocks or floated elements), you should try to be a little more flexible and use flex-box!
CSS
[gist https://gist.github.com/kccnma/f0300750da15e82a86c0f6d752c58f64/]
Once the home page is stable, let's create the two main sub pages:
- about.html
- contact.html
The header and footer are the same (except for the "selected" state (class) on the nav, so simply do a save-as from your index.html, update your title tag, move your selected state to the correct nav item, and lastly, add the body content alone.
HTML
[gist https://gist.github.com/kccnma/4d57afcdd613668d234000b8cd2da02c/]
[gist https://gist.github.com/kccnma/a931678a8f75e516497cf83f08ded13e/]
Once the primary sub pages are set up and working OK, let's create one portfolio entry sub page using the "web site" project as our working example content.
HTML
[gist https://gist.github.com/kccnma/98cc9374a1a618254205488210d636cc/]
For the sub pages, we're going to need some css help for the hero section (to break out of our fixed-width and go full-width) and for our internal content layout, which we'll use a traditional layout grid, only this time, let's use flexbox!
CSS
[gist https://gist.github.com/kccnma/c7ea7c757c47353e0bc1a3f2723e4894/]
Let's Spice it Up!
Finally, lets add some simple (fake) page transitions that with a "fade-in" and "move-in" effect via css3 animation.
CSS
[gist https://gist.github.com/kccnma/a3744153228ecf5ecd1ce240e3909bfa/]
When you are done, the home page should look like this:
[codepen_embed height=”660” theme_id=”0” slug_hash=”bLKKqV” default_tab=”result” user=”kccnma”]See the Pen Custom Portfolio Test #0.1 by kccnma (@kccnma) on CodePen.[/codepen_embed]
For the completed version with sub pages and additional css (e.g. circular image helper), see the demo and source code via the links below:
See a Demo
http://nma.kcc.hawaii.edu/gargiulo/tests/portfolios/customportfolio1/
View on Github Button
https://github.com/kccnma/teachingmaterials/tree/master/customportfolio1
View on Codepen
https://codepen.io/kccnma/pen/bLKKqV
Download Starter Files
http://nma.kcc.hawaii.edu/gargiulo/tests/portfolios/img.zip
Next Steps: Continue adding more pages with real content
After the home page is secure, along with at least one project/portfolio entry sub page, you can move on to add all pages with real content. As you add all sub pages and content, be sure to test on multiple devices and screen sizes and try designing-as-you-code. You might find it helpful (and easier at times) to design in the browser instead of in your usual design application.
One last thing: Have fun!
Summary
Coding your online portfolio is never an easy task. There are so many ways to present your work, so which way is best? Unfortunately there is no right or wrong answer—only you can make this decision. The good news is that you can use your online portfolio as a great excuse to practice writing custom hand-written code from scratch, because the best way to become a stronger web designer and front-end web developer is to create web sites. The the more custom coded sites you make, the easier it will get as you develop your own best practices for writing code and solving code-related UX and UI problems.
Related Resources and Reading
- Chris's Blog post on Portfolio Entries
- Chris's various portfolio tests
Go Further
- Explore and test out different custom grid layouts like this mockup grid test with variable-sized thumb images.
- Consider implementing a sortable gallery
- Check out MixItUp by Kunk Labs
Author Notes
This was written specifically to help aspiring web designers as they aim to:
- Synthesize the concepts and skills garnered as a designer and front-end web developer by showcasing a culmination of projects in a custom designed and coded bespoke interface that integrates conceptual thinking and aesthetic application.


Login
Sign Up
Apply Loan
Loan History
Sign Out
Quick Credit
Login
Provide Login Credentials
Email:
Passwoord:
Sign in
Are you a new user?
Sign up


Installations built,
Academic work,
Miscellaneous projects
Alexandre Beaudouin-Mackay is currently pursuing an M.Arch at MIT.
Originally from Paris, France, he is bilingual
in French and English, and received his
B.Sc. in Architecture from McGill University in
Montreal, Canada.
© 2019, Alexandre Beaudouin-Mackay


This week I was I was sick the majority of time. Therefore I was unable to contribute much. I did hand calculation of the current controlled oscillator and tested the performance of the CCO. Cody and I were able to extract information from simulation and decide specs for other components. I also wrote the website for our team.
What I plan to do the upcoming week: help Cody write verilog for the system and finalize spec for each component. I would also like to help Anil work on improving the classification accuracy and optimizing the algorithm so it best simulates our system
This week I've worked on the digital components and worked with Rebekah on characterizing each component to determine what specs we want to use (eg. number of window counters per channel, current range of DAC, working current range of CCO etc). In addition, I've started writing the verilog for modeling our circuit.
I also wrote some Matlab starter code to help Anil get started with programming. We discussed in detail how to manipulate the neural data we acquired online.
Next week I will work with Rebekah to finish the verilog model of system
What I’ve done this week
My plan is to write another Matlab script that sweeps possible values for hyperparameters as well and evaluates performance and picks out the optimal hyperparameters when run for a long time (e.g. overnight).
Together as a team, we worked on the design proposal.
This week I worked with Cody to determine specs of our system (input signal duty cycle, calculations to determine power consumption). I also studied analog-AMS and what to include in our modules.
Next week I will be working with Cody to figure out detailed specifications as well as various testing strategies for the system.
I continued working with Rebekah to determine more detailed specs of our system (input signal duty cycle, calculations to determine expected power consumption etc) I also wrote verilog for the digital portion of our chip and am currently working on the testbench verification. I plan to Work with Rebekah on writing verilog-ams of analog portion
I finished working on hyperparameter optimization by using the ELM algorithm in MATLAB to determine base line design specs that we’re going to go for in our design of the circuit. (hyperparameters include hidden layer node count, window counter sizes, number of classes for classification, and time bins for g rouping spike trains and some more)
Next week going to join Rebekah and Cody in designing analog portions of the circuit such as the current mirror array.
This week I worked with Anil on studying the power consumption specificattions with respect to the algorithm's tolerance. At first we roughly calculated the power consumption from simply scaling the process and found out that to meet the power requirement of the paper we need to reduce drain current. However, after running simulation I found out that the threshold voltage of the transistor is too high. Therefore we have decided to operate in subthreshold to achieve power consumption in nano Watts range. I also ran Monte Carlo simulation on current mirrors to characterize the standard deviation of process mismatch parameters. Anil has been running simulation with the data I provided. Once we collaborative solve this problem we will be able to plug this into our verilog model. Looking forward I will be studying sub-threshold circuit design
This week I worked with Anil and Rebekah to figure out the power problem. Although we haven't solved it completely, we're on the right track and are starting to understand the steps we need to take in order to significantly reduce our power consumption (how much we can reduce Vdd by, size of current mirror array, etc). Also, this week I've worked on the verilog model. The window counter is tested and verified, and now I'm working on the CCO model.
This week I’ve continued working on MATLAB, but now for a different analysis, Rebekah and I figured out that our current mirrors placed a random distribution of weights not around 0 but around 1, and I have been running MATLAB simulations to see how this change affects our decoding accuracy (it very significantly affects negatively unfortunately). I have been trying to come up with the reasons why this is happening and a possible solution for it. So far I have enough data to support the notion that this is happening due to all the data being stuck on a low gradient portion of the sigmoid function (used as activation function in hidden layer and implemented by CCO). I’m in the process of adjusting the steepness and the center of this sigmoid function to better improve the decoding accuracy and hence coming up with necessary restrictions (design parameters) for the CCO.
This week I built and tested the DAC in cadence. I first tried the topology provided in the paper and it had a large DNL. Therefore I switched to a current mirror based technology and the DNL is now less than 1 bit. I also studied the structure of the CCO and built it based on the desired operating frequency. On the other hand, I worked with Anil in understanding and improving the algorithm in order to obtain a higher decoding accuracy. This system now has components that are ready for a system level testing, which will be the focus of next week's work.
This week I worked on building and testing the schematics for the digital portion of the system. It is mostly working by itself right now but I need to make a few timing adjustments and also need to do testing with the rest of the system
This week I worked with Rebekah and sometimes on my own to improve the decoding accuracy of our algorithm. I developed a new approach to raise the decoding accuracy to ~70% from 60% for four class classification
This week I worked on running Monte Carlo simulation of individual transistors to make sure the tool kit we use is capable of performing both process variation and mismatch. I also integrated the entire system after Cody finished building the digital portion of the system. I set up testbenches to study the influence of mismatch on a subsection of the system. I also put together a smaller version of the entire system to study how to dump outputs for Monte Carlo and post-processing
This week I finished building the schematics for the digital portion of the system as well as testing and verifying functionality.
I also wrote matlab and verilog code for generating the input vectors to the system from the raw data
This week I finished hyperparameters adjustments and finalized the decisions for several size parameters of the circuit, taking power consumption and accuracy in consideration. Some of these decisions included the window_counter moving array size, number of hidden layer nodes etc. I wrote Matlab code to verify the adjustment of the activation function within the hidden layer and optimized it with respect to decoding accuracy. Currently working on how to dump/read Monte Carlo analysis from Cadence back into Matlab for testing purposes.
This week Cody and I worked on debugging the nominal performance of the overall system. The largest challenge we faced was simulation time. We tried spectre and ultrasim with analog and mixed signal simulation mode, each taking a long time (hours). We managed to verify the nominal behavior of the circuit eventually.
This week I worked with Rebekah in debugging a scaled down version of our design (there was an issue in our interpretation of the output signals as well as a timing issue of reset signals). I believe we've resolved the bugs for now.
In addition, I've been working on running simulations and modifying simulation settings in order to run longer simulations while keeping simulation times at reasonable lengths.
This week I worked to improve the decoding accuracy of our algorithm by other hyperparameter optimization techniques and adding more post-processing layers in the Matlab section. I’ve tested input vectors that are all going in the same direction, and in the process of putting appropriate padding in between turns during data analysis.


Preparation time
30 mins to 1 hour
Cooking time
30 mins to 1 hour
Serves
Serves 10-12
Dietary
This cake is dramatic, delicious and versatile: decorate with fresh flowers for a christening or wedding cake, top with strawberries or raspberries for something girly, or add quartered figs for a Father’s day cake.
Equipment and preparation: You will need a 20cm/8in round deep cake tin and a 20cm/8in cake board.
Preheat the oven to 180/C/350F/Gas 4 and line a 20cm/8in round deep cake tin with baking paper and brush or spray with oil.
Cream together the butter and sugar in a large bowl until they begin to go pale. Add half of the eggs and half of the flour and mix well. Add the rest of the eggs, flour, cocoa powder, salt and baking powder and beat for a minute or two until the mixture is uniform. Dollop into the prepared tin and bake in the oven for about 30–40 minutes, or until a skewer inserted in the middle comes out clean. Leave to cool in the tin.
Meanwhile, make the buttercream: put the butter and icing sugar in a bowl and whisk together until the mixture goes fluffy. Add the cooled, melted chocolate and whisk for a further two minutes.
Once the cake is completely cool, remove it from the tin. Carefully cut the top flat with a large serrated knife. (Eat this bit as a chef’s perk!)
Turn the cake upside down on a 20cm/8in cake board so that the bottom now becomes a nice flat top. Split the cake horizontally and sandwich the top and bottom together with a 1cm/½in layer of buttercream.
Spread half of the remaining buttercream all over the top and sides of the cake, making it as smooth as possible. Put it in the fridge to set before doing another layer - this makes it much easier to get neat squared-off edges.
Gently push the cigarillos vertically onto the sides of the cake, positioning them as straight as possible and making sure they touch the bottom.
The next step is up to you - I can’t tell you the wide-eyed looks you’ll get when you walk into a room holding this finished cake. Serve with a self-satisfied grin.
You need JavaScript to view this clip.
How to cream butter by hand


Notiification Bezel looks horrible when fully transparent
REQUEST: Hot key for "Play Party Shuffle" or "Switch to Pary Shuffle"
REQUEST: iTunes-like browser (activated with hot key)
REQUEST: Customization of what items appear (and where) in the Global Menu
REQUEST: Pass track info as parameters to track change items and call specific methods in response to different notifications
star ratings inconsistent in floater
REQUEST: Show playlist contents in prev and next buttons
REQUEST: Add bitrate and other iTunes information as possible format markers (for Growl etc)
Floater won't move to 2nd screen if 2nd screen is above main screen
CRASH: Synergy dies in _NSReadImage


Ocala events
-
danny carlos kiss me mp3
A Chorus Line - Wikipedia, the free encyclopedia
A Chorus Line is a musical with music by Marvin Hamlisch, lyrics by Edward Kleban and a book by James Kirkwood, Jr. and Nicholas Dante. Centred on .
http://en.wikipedia.org/wiki/A_Chorus_LineA CHORUS LINE Songs
01, A Chorus Line Nothing Accompiment Listen - file location: hamienet.com, Ad. 02, Tune In To 081024 Chorus Line In The Sky Listen - file location: .
http://www.songarea.com/music-codes/a_chorus_line.htmlA Chorus Line [Original Soundtrack] - Original Soundtrack : Songs ...
Find album reviews, stream songs, credits and award information for A Chorus Line [Original Soundtrack] - Original Soundtrack on AllMusic - 1985 - A Chorus .
http://www.allmusic.com/album/a-chorus-line-original-soundtrack-mw0000189368
who you really are lyrics Upcoming events in Ocala
carolina snapshot coupon code Hottest Tickets
-
Apr 11noz to noz x series kennels
Amway Center -
Apr 28money education day trading
Amway Center -
Jun 25dieque 2008 phpbb group
Bob Carr Performing Arts Center -
Mar 30blacks in the constitution
Amway Center -
Aug 27usa football coaches clinics
Amway Center -
Jun 21what do greater flamingos eat
Amway Center -
Sep 13list all minnesota cities
Francis Field -
Mar 17queen ann drop leaf cocktail table
St Augustine Amphitheatre -
Oct 8welshly arms hotel video
Amway Center -
May 4san diego exhaust hoods
Bob Carr Performing Arts Center
Ocala's best venues
-
A Chorus Line (1985) - IMDb
A Chorus Line -- Hopefuls try out before a demanding director for a part in . adding songs and exterior plotlines (hello Cassie and Michael Douglas) not .
http://www.imdb.com/title/tt0088915/ -
A Chorus Line tickets at the London Palladium
The structure of A Chorus Line was seen to be experimental at its first outing, as intead of the popular 'book' musicals of the day, the songs arrived naturally and .
http://www.londonpalladium.org/a-chorus-line/ -
A Chorus Line (Musical) - StageAgent.com
Plot summary and character descriptions for A Chorus Line including voice part, dancing requirements and age range. . Song List: View Songs & Lyrics .
http://www.stageagent.com/Shows/View/689nicola fitzharris newcastle upon tyne
98 people's favorite
-
A Chorus Line - IBDB: The official source for Broadway Information
Comments: "The characters portrayed in A CHORUS LINE are, for the most part, based upon the lives of Broadway . Opening Night Credits; Awards; Songs .
http://ibdb.com/production.php?id=3752 -
A Chorus Line - London Palladium
A Chorus Line, the legendary Broadway production is now showing at the . blend of captivating song, riveting drama and stunning choreography that will make .
http://www.achoruslinelondon.com/


Akan Names are derived from Ghanian culture.In Ghana children are given their first name as a day name which corresponds to the day in the week they are born.Therefore a male child born on sunday will be named Kwasi and a female child born on sunday will be named Akosua.
If you want to know your Akan Name fill in the form below;


| File | Statements | Branches | Functions | Lines | |||||
|---|---|---|---|---|---|---|---|---|---|
| src/js/ |
|
19.23% | 5/26 | 0% | 0/12 | 0% | 0/2 | 19.23% | 5/26 |
| src/js/base/ |
|
95.78% | 159/166 | 87.1% | 81/93 | 97.06% | 33/34 | 95.78% | 159/166 |
| src/js/base/core/ |
|
82.09% | 706/860 | 75.62% | 366/484 | 88.1% | 148/168 | 82.27% | 696/846 |
| src/js/base/editing/ |
|
88.13% | 453/514 | 76.09% | 210/276 | 90% | 63/70 | 88.8% | 452/509 |
| src/js/base/module/ |
|
66.01% | 1043/1580 | 38.15% | 206/540 | 63.85% | 242/379 | 66.16% | 1042/1575 |
| src/js/bs3/ |
|
95.15% | 98/103 | 54% | 27/50 | 85% | 17/20 | 95.15% | 98/103 |
| src/js/bs4/ |
|
0% | 0/105 | 0% | 0/50 | 0% | 0/20 | 0% | 0/105 |
| src/js/lite/ |
|
0% | 0/204 | 0% | 0/91 | 0% | 0/40 | 0% | 0/204 |
| src/js/lite/ui/ |
|
2.55% | 4/157 | 0% | 0/55 | 0% | 0/25 | 2.55% | 4/157 |
| test/unit/base/ |
|
100% | 55/55 | 50% | 1/2 | 100% | 8/8 | 100% | 54/54 |
| test/unit/base/core/ |
|
100% | 616/616 | 100% | 2/2 | 100% | 193/193 | 100% | 613/613 |
| test/unit/base/editing/ |
|
100% | 493/493 | 100% | 0/0 | 100% | 38/38 | 100% | 493/493 |
| test/unit/base/module/ |
|
99.6% | 247/248 | 50% | 5/10 | 100% | 56/56 | 99.6% | 247/248 |
| test/unit/bs/module/ |
|
99.37% | 158/159 | 80% | 4/5 | 100% | 44/44 | 99.37% | 158/159 |


2020 Royal Enfield Thunderbird Launch Expected In Next 3 Months
by Riju GangulyThe upcoming 2020 Thunderbird cruiser will feature a new styling, underpinning and an updated BS6 compliant engine
Royal Enfield is readying their new generation Classic and Thunderbird range of motorcycles for the Indian market. Both the upcoming models were spotted testing on many different occasions showcasing almost a new cosmetic or mechanical change each time.
The Indian manufacturer is expected to make a strong comeback in sales with the launch of the new motorcycles. Royal Enfield has also been hit with the sales slowdown hampering the auto industry as a whole and the BSVI models with updated mechanicals could draw in more audience into the brand’s fold.
Here are the top 5 things to expect from the upcoming 2020 Royal Enfield Thunderbird
1. Styling
Expect the upcoming Thunderbird cruiser to feature a slightly smaller redesigned round headlamp towards the front, a single pod instrument cluster, a redesigned fuel tank, side panels and split seats. The test mule was also spotted with a slightly shorter rear fender, repositioned taillamp, and side turn indicators.
2. Updated Powertrain
The 2020 RE Thunderbird will be powered by an updated BS6 compliant motor. This is the same motor that will also power the 2020 Classic 350 Cruiser as well. The updated engine could get a slightly bigger displacement and likely will receive a power upgrade as well.
The carburettor unit of the 346cc mill will likely be replaced by a new fuel injection system to meet the stricter BS6 emission norms. The more powerful 499cc, air-cooled, single-cylinder unit on the other hand, already gets a fuel injection system as standard.
3. Updated underpinning
The upcoming Royal Enfield Thunderbird will use a new double-cradle chassis. The cruiser will rely on a telescopic suspension setup at the front and dual shock absorbers at the rear. The position of the front disc brake has also been altered from the left to the right side of the wheel.
The Thunderbird will also get a rear disc brake to bring the motorcycle to a halt. A dual-channel ABS will be offered as standard for the safety of the rider.
4. Updated Ergonomics
The footpegs of the motorcycle have been moved forward for a more relaxed cruiser like riding position while the handlebar also has been moved slightly forward for a more relaxed riding stance.
5. Expected pricing and rival
Expect the upcoming Thunderbird to be priced at least Rs 15,000-20,000 over the current generation model. The current generation Thunderbird is priced Rs 1.64 Lakh (ex-showroom).
The upcoming 2020 Royal Enfield Thunderbird will rival directly against the likes of the Mahindra Mojo 300 ABS and the Bajaj Dominar 400 when it finally launches here next year.


new SetTileTrigger(game, key, name, x, y, width, height, props)
Parameters:
| Name | Type | Description |
|---|---|---|
game |
Phaser.Game | |
key |
string | Key for Phaser cache storage |
name |
string | Name for Nadion creation |
x |
number | X position |
y |
number | Y position |
width |
number | Width in pixels |
height |
number | Height in pixels |
props |
Object | Properties collection from Tiled |
- Source:
Methods
-
off()
-
Turn off the Trigger
- Source:
-
on()
-
Turn on the Trigger
- Source:
-
reset()
-
Reset the trigger (called when the State is reset)
- Source:


Crying maid accuses 'employer' of sexual assault and dousing her in hot oil
The Bangladeshi maid said her Saudi employers had starved her for weeks at a time and tearfully begged to go home in a video she posted online
by Abigail O'LearyA maid has pleaded for help after claiming her employers doused her in hot oil, sexually assaulted her and locked her up for 15 days.
The Bangladeshi maid accused her Saudi employers of starving her for weeks at a time and tearfully begged to be rescued and returned home in a video she posted online.
In the footage, the unnamed woman alleged she had been the victim of "merciless sexual assaults" by her bosses and even held her scarred arms up to the camera.
She also shows her scarred arms to the camera - claiming the injuries were inflicted by her bosses.
The emotional woman continues: "I perhaps won't live longer. Please save me.
"They locked me up for 15 days and barely gave me any food. They burned my hands with hot oil and tied me up"
The woman, believed to be 25, is seen holding the phone close to her face as she appears to hide from her employers to secretly record her call for help.
She adds: "'They took me from one home to another one.
"In the first home, they tortured me and hit me repeatedly and then took me to another one where I experienced the same.
"I don't think I'm going to live.
"They have beaten and tortured me. Please save me, just take me away from here."
The post has been shared thousands of times on social media, with many highlighting how it reveals the shameful exploitation of some Asians working abroad.
A Bangladeshi Non-Government Organisation, BRAC, said she is still living with her Saudi employers in Jeddah and has had her phone confiscated.
BRAC are desperately trying to bring the woman home.
Her family in Bangladesh said they had been 'trying to get her back but couldn't'.
Since 1991, some 300,000 Bangladeshi women have travelled to the Gulf nation to work, according to the ministry of expatriates' welfare.
Many fall victim to rogue recruitment firms promising good jobs with a good wage abroad.
Migrant rights group Ovibashi Karmi Unnayan Program, based in Bangladesh, said last month that 61% of 110 women they interviewed who returned home, many from Saudi Arabia, said they had been physically abused by employers.
Around 14% said they were sexually abused.