1,071,192 events, 591,921 push events, 949,845 commit messages, 72,579,572 characters
Animated GIF encoder: backport optimization strategies from APNG
PD's homebrew APNG encoder is great! It aggressively optimizes animation frames to produce very small APNG files, smaller than any other open-source photo editor (to my knowledge).
PD's animated GIF encoder was written earlier and was nowhere near as sophisticated. I've been meaning to backport the PNG optimization strategies but hadn't done it yet... until today.
Animated GIFs produced by PhotoDemon are now much smaller, and they use pretty much every strategy possibly to shrink filesize.
The biggest remaining problem is the actual GIF encoder used - FreeImage. FreeImage's GIF encoder is poor. It's not just the LZW encoding, either - it's stupid shit like always writing 256-color local palettes even if the palette contains 128, 64, etc colors. This can add up quickly in a many-framed image, and it's a sloppy implementation detail that requires a disproportionate amount of effort on my part to solve.
So I'm on the lookout for an alternate GIF encoder. Honestly, LZW compression is conceptually pretty simple, so there may actually be an existing solution that's easy for me to port.
At any rate, a non-garbage encoder should allow PD to produce best-in-class GIFs, so I hope to drop that in soon. In the meantime, GIFs are already looking much better with this new optimizer.
nerf Leshrac (#3208)
- leshrac
hahahahaha fuck you leshrac
-
Update leshrac.txt
-
Update leshrac.txt
sched/core: Fix ttwu() race
Paul reported rcutorture occasionally hitting a NULL deref:
sched_ttwu_pending() ttwu_do_wakeup() check_preempt_curr() := check_preempt_wakeup() find_matching_se() is_same_group() if (se->cfs_rq == pse->cfs_rq) <-- BOOM
Debugging showed that this only appears to happen when we take the new code-path from commit:
2ebb17717550 ("sched/core: Offload wakee task activation if it the wakee is descheduling")
and only when @cpu == smp_processor_id(). Something which should not be possible, because p->on_cpu can only be true for remote tasks. Similarly, without the new code-path from commit:
c6e7bd7afaeb ("sched/core: Optimize ttwu() spinning on p->on_cpu")
this would've unconditionally hit:
smp_cond_load_acquire(&p->on_cpu, !VAL);
and if: 'cpu == smp_processor_id() && p->on_cpu' is possible, this would result in an instant live-lock (with IRQs disabled), something that hasn't been reported.
The NULL deref can be explained however if the task_cpu(p) load at the beginning of try_to_wake_up() returns an old value, and this old value happens to be smp_processor_id(). Further assume that the p->on_cpu load accurately returns 1, it really is still running, just not here.
Then, when we enqueue the task locally, we can crash in exactly the observed manner because p->se.cfs_rq != rq->cfs_rq, because p's cfs_rq is from the wrong CPU, therefore we'll iterate into the non-existant parents and NULL deref.
The closest semi-plausible scenario I've managed to contrive is somewhat elaborate (then again, actual reproduction takes many CPU hours of rcutorture, so it can't be anything obvious):
X->cpu = 1
rq(1)->curr = X
CPU0 CPU1 CPU2
// switch away from X
LOCK rq(1)->lock
smp_mb__after_spinlock
dequeue_task(X)
X->on_rq = 9
switch_to(Z)
X->on_cpu = 0
UNLOCK rq(1)->lock
// migrate X to cpu 0
LOCK rq(1)->lock
dequeue_task(X)
set_task_cpu(X, 0)
X->cpu = 0
UNLOCK rq(1)->lock
LOCK rq(0)->lock
enqueue_task(X)
X->on_rq = 1
UNLOCK rq(0)->lock
// switch to X
LOCK rq(0)->lock
smp_mb__after_spinlock
switch_to(X)
X->on_cpu = 1
UNLOCK rq(0)->lock
// X goes sleep
X->state = TASK_UNINTERRUPTIBLE
smp_mb(); // wake X
ttwu()
LOCK X->pi_lock
smp_mb__after_spinlock
if (p->state)
cpu = X->cpu; // =? 1
smp_rmb()
// X calls schedule()
LOCK rq(0)->lock
smp_mb__after_spinlock
dequeue_task(X)
X->on_rq = 0
if (p->on_rq)
smp_rmb();
if (p->on_cpu && ttwu_queue_wakelist(..)) [*]
smp_cond_load_acquire(&p->on_cpu, !VAL)
cpu = select_task_rq(X, X->wake_cpu, ...)
if (X->cpu != cpu)
switch_to(Y)
X->on_cpu = 0
UNLOCK rq(0)->lock
However I'm having trouble convincing myself that's actually possible on x86_64 -- after all, every LOCK implies an smp_mb() there, so if ttwu observes ->state != RUNNING, it must also observe ->cpu != 1.
(Most of the previous ttwu() races were found on very large PowerPC)
Nevertheless, this fully explains the observed failure case.
Fix it by ordering the task_cpu(p) load after the p->on_cpu load, which is easy since nothing actually uses @cpu before this.
Fixes: c6e7bd7afaeb ("sched/core: Optimize ttwu() spinning on p->on_cpu") Reported-by: Paul E. McKenney [email protected] Tested-by: Paul E. McKenney [email protected] Signed-off-by: Peter Zijlstra (Intel) [email protected] Signed-off-by: Ingo Molnar [email protected] Link: https://lkml.kernel.org/r/[email protected] Signed-off-by: Fiqri Ardyansyah [email protected]
The battle of Hadoop (Spark) vs zac is over
I have prevailed
Gosh this was an annoying bug. Turns out, the mapred FileOutputCommitter (FOC) needs to determine if its source or destination directories are files or directories. It delegates this task to the S3A hadoop FS implementation which is probably one of the most unintuitive pieces of code I've ever had the pleasure of staring at for 2.5 hours.
Anyways, on with the battle; I finally figured out that the s3a FS will determine if a file is a directory simply if the path has a "/" at the end of it. Simple, right? WRONG. It only uses this check if it previously stored the metadata of a HeadObject request in the S3A FS's local cache. Otherwise it delegates to an actual HeadObject request. However, directories in S3 don't exist, so on a HeadObject to a directory, S3A FS expects a 404 error, not a successful response.
The S3RestServiceHandler was returning successful responses on HeadObject for directories and files. Returning a 404 on directories was enough to coax the beast of the S3AFS impl to see the path as a directory, and finally I was able to fix a minor rename bug -- which now results in a successful output of the parquet files from Spark. Amazing!
Update Help needed
I have billions locked up in etherscan it's not for me it's never been about me it's about all of us we must change this world look a child in the eyes and tell them everything is gonna be ok it's not government and there wicked money and greed got us here we have the power to remove them now reach out and help each other love each other grow crops can foods build schools for our children teach them how to live without fascist dictating over them help me help others teach me how to get this crypto out I dunno greed I've never had much don't need much I worry more about everyone else than I do myself I always have I'm very sorry if I messed things up here my intentions are pure peace people let's all do this together we can govern ourselves no one should be homeless now one should be hungry and the only power they hold over us is fake ass worthless paper once we realize were all the same black white green brown christian musilum Jew democrat Republican none of that matters we all suffer the same we all feel pain the same and like it or not we're all in the same boat unless your in the 1%group those people do not give two fks about us were all we've got good night I
AP_HAL_ESP32: new fully-tested HAL layer for esp32 including support for...
modules: add espressif IDF as submodule
AP_Compass: add support for ICM20948 I2C variant and rename existing one as SPI variant
AP_Filesystem: add ESP32 support
AP_GPS: reduce warnings in compilers by ensuring constants are seen as float.
spi bus, i2c bus ,uarts , sdcard , serial and usb uarts, serial-over-wifi, rc-in-ppm , rc-out servo x6 , etc
AP_HAL: esp32 support for 3x board types
AP_InertialSensor: esp32 tweaks, including adding NONE INS and making the absence of an INS non-fatal.
AP_Logger: longer timeout for esp32 under freertos
AP_Math: esp32 with idf defines MIN and MAX differently, so we must undef first
AP_OSD: alternative OSD type with Internal / embedded symbols.
Tools: add esp32 support
esp32 Util.h and Util.cpp
AnalogIn: Removing blank space at end of line (sorry)
SdCard: fix the spi driver mount call
Util: comment safety in utils since not implemented yet in RCoutput
AP_NavEKF: remove abort call
esp32: imu orientation support
esp32: analog pins support
Scheduler: support
Util: remove empty trailing spaces (sorry I hate those)
Util: re use esp-idf heap management utils and prepare malloc depending on type but iram not usable
WiFi: Add udp wifi module and select in board with HAL_ESP32_WIFI_UDP
Wifi: edit define/s to just use the value
AP_OSD: remove warning by checking correct range
RCOutput: add safety pwm and watchdog reset status in util
Util: add dma malloc safe allocation
ESP32Diy: add new board types
mount of MMC sdcards
set the default logging backend to log-to-flash
support mavlink-over-wifi with either UDP or TCP. ( udp is a bit slow)
more useful comments in buzz's board header
temporarily disable watchdogs for now
WAF ESP32: --upload works
add notes to this tool on how to build/run it.
started on code integrate a set of default params, not working yet, so disabled by default - this now can run apj_tool.py on the .bin file before flashing it.( corrupts .bin, so not used)
# (752) esp_image: Checksum failed. Calculated 0xd3 read 0xa3
# (752) boot: OTA app partition slot 0 is not bootable
# (753) esp_image: image at 0x200000 has invalid magic byte
# (759) boot_comm: mismatch chip ID, expected 0, found 65535
# (766) boot_comm: can't run on lower chip revision, expected 1, found 255
# (773) esp_image: image at 0x200000 has invalid SPI mode 255
# (779) esp_image: image at 0x200000 has invalid SPI size 15
# (786) boot: OTA app partition slot 1 is not bootable
# (792) boot: No bootable app partitions in the partition table
HAL_ESP32: Add 1st uart and and 3nd esp32 uart notes on backup and restore of ardupilot storage area as .bin random attempts to improve the throughput of parameter fetching filesystem debug on esp32 and rename it to a less common name scheduler debug cleanup esp_idf assumes undefined #defines evaluate to 0 - we put these #defines to a place that in't board-specific buzz's board defines and comments cleanup DeviceBus debug buzzs board uses tcp till udp thruput is improved WIFI_UDP: Use the ip broadcast to send and listen packets WIFI UDP: use select to wait for reads WIFI_UDP: add semaphore and init efore thread HAL_ESP32: remove old files Waf: change build system to build esp-idf with cmake and correct embedding ESP-IDF: using version to 4.2 esp32 waf: idf and hal use cmake build system esp32 readme: Update command list, use python3 [ADD][TCP] add a macro variable to set maximum number of simultaneous connections esp32:sempahore: clean semaphores esp32: sdkconfig: remove old and increasing falsh spe esp32: rcout: check initialised edit: sdkconfig: ignored argument esp32: partition: remove ota feature and increase flash to 2M edit: fix scheduler since sleep < 1ms is handled as 1ms by FreeRTOS edit: i2c: add i2c software bitbanging instead of hardware, can choose edit: update to use AP::RC() instead of own instance. Will try to fix startup connection with frsky r9 edit: fix binary compilation edit: change i2c bitbanging driver to riot OS one rm: old bitbanging i2c driver (too slow) edit: module/esp_idf: use version 4.2 edit: uart/i2c: fix uart rx not working, make i2c first software and external hardware, lower freertos to 500Hz to lower overhead and try out edit: sdcard: automount before autpilot start and fix for sdspi, need better work for shared spi with sdcard Author: Charles Villard [email protected] Author: Buzz [email protected]
chore: Use router-bridge as a new rust crate and TypeScript project.
Rust side (@o0Ignition0o):
- Expose introspect and batchIntrospect on the TypeScript side.
- Allow the JS runtime to return anything that implements DeserializeOwned (It used to return Strings only).
- Add a router-bridge with an introspection module that exposes a way to batch_introspect queries against a valid SDL.
TypeScript side (@abernix):
Building on work that @o0Ignition0o started (but leveraging my history of moving things around this paritcular monorepo and wiring them up), this commit does a few things:
- Renames from
introspection-bridge-rs
torouter-bridge
- Moves the introspection utilities that were for tests directly into tests.
- Removes the introduction of introspection stuff from the
@apollo/federation
package and its top-level exports (this popular package should not expose this at its top-level, but I don't think it was ever the intention to leave it here necessarily.) Similarly removes the dependencies as such. - Uses
ExecutionResult
type fromgraphq-js
rather than the customIntrospectionResult
type. - Introduces TypeScript compilation into the
router-bridge
package and allows us to remove the JSDoc type annotations we were using on JS files.- Honestly, this is much nicer than the previous setup and actually
leverages the compiler. The
runtime.js
file remains as just JS because it wasn't happy with assigning toprocess
andglobal. To some degrees this suggests there's an inadvertent inclusion of
node` types that is implicit magic because I wasn't able to disable it. I'd rather not fight it as this runtime (boilerplate) is fairly static. - In a similar spirit, disables
"use strict";
directive from being emitted in TS compilation, but that's counteracted by Rollup adding it anyway.
- Honestly, this is much nicer than the previous setup and actually
leverages the compiler. The
- Renames directories to be a bit more intuitive in some cases, particularly:
- There are now TypeScript source files in
js-src/
. Rust remains insrc/
. Happy to take this further, but wasn't sure if it was necessary. dist/
becomesjs-dist/
and is now emitted by TypeScript compiler, rather than the bundler (rollup.js).- The bundles are now in
bundled
, rather thandist
.
- There are now TypeScript source files in
- Renamed
url_shim
tourl_polyfill
. - Sets up Jest tests for the introspection stuff now in
router-bridge
.
Co-authored-by: Jesse Rosenberger [email protected]
Update to 1.9706:
1.9706 [2007-02-25] - with bleadperl in VMS the HiRes.t overrun the maximum number of deferred signals because the libc SIGALRM was not strong enough to interrupt select(), and select() got restarted every time, solution is to use POSIX::SigAction if available. A fix from Craig Berry (not 100% there, but helps). - allow for more measuring noise for ualarm() tests 35..37
1.9705 [2007-02-06] - nanosleep() and clock_nanosleep() detection and use were quite broken; in Linux -lrt needed; fixes from Zefram - [internal] slightly cleaner building of $DEFINE in Makefile.PL, should avoid double/conflicting -D flags
1.9704 [2007-01-01] - allow 10% of slop in test #14 (testing difference between CORE::time() and Time::HiRes::time()), there seem to be often transient failures from Perl smoke builds on this test - small pod tweaks
1.9703 [2006-12-08] - use int main(int argc, char **argv) consistently in Makefile.PL, should help with [rt.cpan.org #23868] nanosleep not detected under Mac OS 10.3.9 starting with Time::HiRes 1.96 - if someone still has the locale-broken Perl 5.8.0, suggest that they upgrade their Perl
1.9702 [2006-12-06] - restore the -DATLEASTFIVEOHOHFIVE, Win32 needed it still
1.9701 [2006-12-04] - upgrade to ppport.h 3.10_02 - remove the -DATLEASTFIVEOHOHFIVE - use the ppport.h PL_ppaddr, PL_statcache, PL_laststatval - use the ppport.h aTHXR for calling Perl stat() - switch into four-digit version since 2.0 is coming up awfully fast but not feeling like a major rewrite
1.97 [2006-11-30] - 1.95 broke building in Win32 (since pp_stat is not exported), figured out how to call an op directly in 5.005 (use Perl_ppaddr instead of PL_ppaddr) - backport to Perl 5.004_05 (requires using statcache and laststatval instead of PL_statcache and PL_laststatval) (also checked to work in 5.005_04, 5.6.1, and 5.8.8 with threads)
1.96 [2006-11-30] - 1.95 broke builds for threaded Perls, rt.cpan.org tickets: [rt.cpan.org #23694] Time::HiRes fails tests on Solaris and Perl 5.6.1 [rt.cpan.org #23712] Time-HiRes 1.95 Fails make on AIX 5.2 with Perl 5.8.8 [rt.cpan.org #23730] Time::HiRes 1.95 fails make on MacOS X 10.3.9/perl 5.8.8 - use main() prototype consistently in Makefile.PL
1.95 [2006-11-29] - integrate core change #29180: Silence VC++ compiler warnings from Steve Hay - do not use PL_ppaddr in stat() because that is not available in Perl 5.005_04 - regenerate fallback/*.inc for older Perls without ExtUtils::Constant because of d_hires_stat, resolves [rt.cpan.org #23694] Time::HiRes fails tests on Solaris and Perl 5.6.1 - Make Makefile.PL more defensive against false PERL_CORE
1.94 [2006-10-16] - file timestamps oddities seen: the atime and mtime can be out of sync (modify first and read second can leave atime < mtime) and mtime can be subsecond while atime is not. So make the test more forgiving.
1.93 [2006-10-15] - the ualarm() tests (34-37) assumed that ualarm(N) could never alarm in less than N seconds, widened the acceptable relative range to 0.9..1.5. Addresses [rt.cpan.org #22090] and [rt.cpan.org #22091].
- skip the stat() tests in cygwin and win32, because
if run on FAT the timestamp granularity is only 2 seconds.
Any good way to detect (cygwin or win32) whether we are
being run on NTFS or anywhere with better timestamps?
Addresses [rt.cpan.org #22089] and [rt.cpan.org #22098].
1.92 [2006-10-13] - scan for subsecond resolution timestamps in struct stat, some known possibilities:
(1) struct timespec st_atimespec;
st_atimespec.tv_nsec;
(2) time_t st_atime;
long st_atimensec;
(3) time_t st_atime;
int st_atime_n;
(4) timestruc_t st_atim;
st_atim.tv_nsec
(5) time_t st_atime;
int st_uatime;
If something like this is found, one can do
use Time::HiRes;
my @stat = Time::HiRes::stat();
or even override the standard stat():
use Time::HiRes qw(stat);
to get the stat() timestamps
my ($atime, $mtime, $ctime) = @stat[8, 9, 10];
with subsecond resolution (assuming both the operating
system and the filesystem support that kind of thing).
Contributions for more systems (especially non-UNIX,
e.g. but not limited to: Win32, VMS, OS/2) gladly accepted.
(also more UNIX variants welcome: HP-UX? IRIX?)
Thanks to H.Merijn Brand, John Peacock, and Craig
Berry for brave beta testing.
1.91 [2006-09-29] - ualarm() in SuSE 10.1 was overflowing after ~4.2 seconds, possibly due to a glibc bug/feature (suspected overflow at 2**32 microseconds?), workaround by using the setitimer() implementation of ualarm() if either useconds or interval > 999_999 (this case seems to vary between systems: are useconds more than 999_999 for ualarm() defined or not) Added more ualarm() tests to catch various overflow points, hopefully no problems in various platforms. (The problem report by Mark Seger and Jon Paul Sullivan of HP.)
1.90 [2006-08-22] - tweak still needed for Const64(), from Jerry Hedden - get a freshly generated ppport.h - update Copyright years
1.89 [2006-08-22] - Const64() already appends an 'LL' (or i64), so provide LL and i64 forms for the IV_1E[679] (effects Win32 and Cygwin), reported by Jerry Hedden. - the Changes entry for 1.88 talked about [IN]V_1[679], missing the 'E'.
1.88 [2006-08-21] - clean up the g++ warnings in HiRes.xs, all of them about mixing integer and floating point, introduce constants IV_1E[679] and NV_1E[679]
Update to 0.52:
0.52, released Jan 22, 2007
Belatedly update the SVN::Web installation to note that Subversion 1.4.0 or above is now required to use SVN::Web.
0.51, released Jan 15, 2007
C functionality was inadvertently broken in 0.50. This release fixes that. This was rt#24377 reported by Christoph Buescher [email protected].
0.50, released Jan 12, 2007
SVN::Web now supports accessing repositories that are B on the same host as the SVN::Web installation. Repositories can be accessed using the Ifile:///, Ihttp://, and Isvn:// protocols.
A mechanism for configuring which actions are available on each page has been introduced. See L<SVN::Web/"Action menu configuration"> for more.
A new action, LSVN::Web::Blame has been introduced. This generates output that shows the Subversion annotation/blame information for a file.
Diff output (from LSVN::Web::Diff and LSVN::Web::Revision) is now generated by Subversion, rather than SVN::Web. This makes diff generation much faster, and much less memory intensive. However, it has meant that the I option is no longer available.
There are several small tweaks to the diff and revision output.
Refactoring and rewriting has meant that LDigest::MD5, LText::Diff, and LText::Diff::HTML are no longer prequisites.
A bug has been fixed in RSS generation. The contents of the element are now wrapped in CDATA markers to ensure that any embedded markup is preserved.
There is now support for keeping localisation files in arbitrary directories, configured by the C<language_dirs> configuration option. This makes it simpler to maintain your own localisation files outside of SVN::Web, and makes it easier to integrate third party actions in to an SVN::Web installation.
See LSVN::Web/Languages and LSVN::Web::I18N for more details.
The Template::Toolkit C<log_msg> meta-filter has been replaced with a Template::Toolkit MACRO, defined in F<_log_msg>. The effect is the same, but this approach affords more flexibility (e.g., having different log message filters per repository).
The log template now supports rudimentary 'paging' through the log messages. I paging support requires new functionality in Subversion. Selecting the number of log messages to show per page is also more straightforward.
LSVN::Web::Revision supports a C<max_diff_size> configuration option to cope with revisions which may generate huge diffs.
The configuration file (F<config.yaml>) must contain a C key, otherwise a fatal error is generated.
Most extraneous whitespace is now removed from the templates when output is being produced.
Documentation bug rt#22282, reported by Andrew Sterling Hanenkamp [email protected], has been fixed.
0.49, released Aug 23, 2006
SVN::Web now properly supports Apache 2 / mod_perl 2. In addition, the test suite contains tests that work under Apache 2, and ensure that future changes should not introduce regressions in this functionality.
File::Spec is now used when constructing filesystem paths, instead of assuming that the directory separator is F</>. This should allow the use of native paths on Windows, e.g. F<< C:\path\to\svnweb >>.
A bug in the mod_perl handler meant that the [% script %] directive wasn't generating fully qualified links. This resulted in links in the RSS feed being relative. This is now fixed. Reported by Dietrich Streifert [email protected].
When testing the generated F<httpd.conf> includes an explicit C directive, removing a warning on some hosts. Reported in rt#20170 by [email protected].
Set permissions on the temporary directories when running tests as root. Otherwise they fail. Reported in rt#20170 by [email protected].
Fix a bug encounted on Solaris. SVN::Core::time_from_cstring() was returning negative numbers.
The questions that are asked when running C<< perl Build.PL >> can now be answered and/or skipped by passing command line options to F<Build.PL>. Run C<< perldoc Build.PL >> for the documentation options.
Paths to Apache modules are no longer hardcoded in F<conf/httpd.tt>. C is used to retrieve the value of the Apache library directory. In addition, the name of the mod_perl .so file is now configurable, as different systems call it different things.
Included documentation on using SVN::Web with the IIS web server. Submitted by Tom Hukins [email protected] in rt#20341.
A bug in the author's testing environment meant that 0.48 shipped with templates that generated HTML that was not strictly valid. This, and the templates, have been fixed.
0.48, released Jun 28, 2006
The interface localisation can now be selected. The interface has always been localised, but the mechanism for choosing it has been badly exposed. SVN::Web now supports two configuration options (C and C<default_language>) to specify the language selection.
In addition, the available configured languages are also exposed through the (C) user interface, and the user can choose from the list of available localisation. Their choice is saved in a cookie.
Generation of RSS feeds is now done using a template, instead of using LXML::RSS. This removes a dependency on XML:RSS, and should make it easier to customise the content of the RSS feed should you desire.
This fixes rt#18169, reported by Mike Ellery [email protected].
RSS feeds are now autodiscoverable in modern browsers.
The formatting of timestamps is now configurable using L<POSIX/strftime>. You can choose how timestamps are formatted, and they can be displayed in UTC (the Subversion default), the server's local timezone, or the timezone of your choice. See L<SVN::Web/"Time and date formatting"> for details.
This fixes rt#18806, reported by Mike Ellery [email protected].
Worked around a bug in Subversion where repository paths that were specified with a tailing slash would trigger an assertion. This fixes rt#19273, reported by Michael Schwern [email protected].
Fixed a bug where the C<directory_umask> cache backend option was not being treated as an octal number. This fixes rt#19272, reported by Michael Schwern [email protected].
The LSVN::Web::Revision action now show's the repository's youngest revision if no C parameter is provided.
Fixed a bug in LSVN::Web::Revision. Revisions that contain files that were copied from another file, modified, and then committed will now be displayed properly instead of generating an error.
The documentation for LSVN::Web includes an example configuration for Apache and FastCGI, contributed by Robert Spier [email protected].
Made extensive changes to the test suite. Include tests that exercise SVN::Web when running under C, as a CGI script, and as an Apache mod_perl1 handler. These tests are optional -- the installer is prompted at C time whether to run these tests, and to provide the information the tests need (such as the port to run on).
0.47, released May 6, 2006
Implement support for caching the results of the actions, using any of the LCache::Cache family of modules. In tests (see F<t/benchmark.t>) this can yield a 20% or greater speed benefit. See L<SVN::Web/"Data cache"> for details of how to enable the cache and configure cache related options.
Support Subversion repo directories and files that have spaces or other characters that should be URI escaped in their names. Fixes rt#19093, reported by [email protected].
Commented out the references to LTemplate::Plugin::Clickable and LTemplate::Plugin::Clickable::Email in the config file that is generated by C. This stops log files filling up with warnings if they're not present. The lines remain, commented out, as a suggestion for users.
Improved the modperl2 support, fixing rt#19004, rt#18437, and rt#18346 (Garrison Hoffman [email protected], [email protected], Thomas Nagel [email protected]).
0.46, released Mar 9, 2006
Fixed a bug in C. The L module is now always used when running under this server, instead of LCGI::Fast. This should fix problems if you are trying to use C on a host with LCGI::Fast installed.
0.45, released Mar 8, 2006
Fixed a bug that broke mod_perl support.
0.44, released Mar 8, 2006
When browsing the repository the F templates now include age of the file, expressed as {seconds, minutes, hours, days, weeks, months, years} since the file was last modified.
The C, C, C, and C actions are much more conservative with memory when processing commits that changed a large number of files. Fixes rt#17359, reported by Dietrich Streifert [email protected].
Included support for running under mod_perl2 as well as mod_perl1. Fixes rt#17085 and rt#17350. Based on a patch from Garrison Hoffman [email protected].
Fixed a bug when running under mod_perl -- the HTTP headers were not being sent. Some browsers could cope with this, others just displayed the raw HTML. Reported by Dominic Mitchell [email protected].
Entering a revision number that does not exist will now generate a localised error message. Fixes rt#17822, reported by [email protected]
The LSVN::Web::Revision action will now not show diffs between file revisions if either revision of the file has a non-text MIME type. Fixes rt#17625, reported by Mike Ellery [email protected].
Fixed some bugs in C. Option parsing works properly, fixing rt#17347 (reported by [email protected]) and the C<--net-server> option is now honoured.
C should now work if any directories in the install path contain regexp metacharacters in the filename. Fixes rt#17282, reported by [email protected]. It also emits warnings if copying files or making directories during the install process fails, fixing rt#17283.
0.43, released Jan 25, 2006
Fix a syntax error in the config file generated by svnweb-install.
Fix the instructions and code for running under mod_perl.
When viewing an HTML diff, include a link to the plain text equivalent.
Showing diffs when viewing a revision is now optional, but defaults to on.
Require Exception::Class 1.22 or above. Versions below lack the necessary C<caught()> syntax.
Improve the installation and configuration documentation.
Include C, a simple web server to make it easier for people to get started with SVN::Web.
0.42, released Dec 16, 2005
Throw exceptions instead of die()ing on almost all errors. Catch the exceptions and generate much friendlier error messages. Error messages are now easy to localise.
When viewing a diff, the I templates show the two revision numbers being compared, and include a link allowing the user to reverse the order of the diff.
The syntax for specifying permitted actions, and the classes that implement them, has changed. See L for more information. This mechanism also allows for easy configuration of per-action options.
A (partial) French localisation has been supplied by Cyril Brulebois.
Any Csvn:externals properties that are set on a directory are now shown when browsing that directory.
When viewing a file's revision log, you can now select two arbitrary revisions and get a diff showing the changes between those revisions. Fixes rt#15813.
If you only have one repository configured then the C action can be configured to immediately redirect to browsing that repository, saving the user from having to click through an intermediate page. See LSVN::Web::List for more information.
fix(@clayui/css): remove node-sass
and add new build file
WARNING, this is a draft pull request:
-
This commit message will be edited before the merge but I thought it be a good idea to add as much information as possible.
-
The CI (GitHub actions) will probably fail
-
There might be conflicts, but I'll rebase with
master
later on -
There's a lot to read, sorry about that
This is a "first step" to fix the Modernize the clay-css package build system
issue: in reality, this is more about removing node-sass
from clay, and
along the way remove other dependencies like gulp
or metalsmith
, as well
as updating other dependencies like gatsby
, all that to say that there's
still a lot of work expected to make clay work on different node
versions, because clayui.com
also depends on node-sass
, as well
as the clay-charts
package.
In this change we change node-sass
, with sass
in order to be able to
- Compile clay-css with node 10, lts (and hopefully latest soon)
- Remove gulp tasks
Test plan
- Fetch this branch
- Run
yarn
- Run
yarn workspace @clayui/css build
- Assert that the clay-css is still working as expected
Be aware that even if the above works, we still have work to do here,
because clayui.com
and clay-charts
, also depend on node-sass
, so we'll
have to do something about it. By switching to sass
instead of node-sass
in our workspace, in this branch the clayui.com
project doesn't work as
expected, and clay-charts
throws TypeScript errors.
Things left to do:
- Clean up remaining "unused" dependecies in
clay-css
- Update
clayui.com
directory - Discuss (see below)
Thing I'd like to discuss:
-
When building
clay-css
, on themaster
branch, thelib
directory contains ancss/cadmin
folder (with two directories) but they are empty. I guess this isn't expected, but I wanted to make sure I'm understanding this correctly -
This change, could replace the
gulp compile
task, but not thegulp build
task. I assume thegulp build
task is there for our "test site", but if someone could confirm, it would great. -
In the "gulp" based build
- We copy existing scss files from
src/scss
tolib/css
- We compile scss file from
lib/css
tolib/css
- We then remove the scss files copied previously in
lib/css
- We copy existing scss files from
So my question is: couldn't we just compile scss files from src/scss
to
lib/css
to avoid copying and removing? If it's not the case, I'd like to
understand why.
-
About the
icons.svg
, Bryce mentioned something aboutviewBox
attribute, so if we could check that the "new" file is the same as the "old" one, it would be great. -
When installing the
@clayui/css
package from npm, we have asrc
andlib
directory. The files in thesrc/images/icons
directory are exactly the same ones as in thelib/css
directory, the only difference is thatlib/css
also contains theicons.svg
file that we generate. Is this expected? -
Same thing as above but for the
src/js
andlib/js
directories. -
As part of the "migration" from
sass
tonode-sass
, we'll also have to update theREADME.md
file inpackages/clay-css
because it mentionsgulp
-
Nothing to do with this change, but running
yarn format
changed a lot of untouched files (which I obviously didn't commit) but I thought I'd mention it since it doesn't seem normal. -
Do we know if the
sassdoc
task works withsass
? -
For some reason with node 14 (lts at the time of writing this), when running
yarn lint
from the root of the repository we get errors.
This is very interesting task, and it reminded me of this video.
It's a very good exercise to realize that maintaining node projects, isn't easy. For example, you can take a 10 year C project and compile it with the latest version of GCC, but with node, every now and then "everything breaks", so before adding dependencies I think we really need to be thoughtful about it. We should also have a regular "spring cleaning" task to avoid having to go though these migrations, because they aren't easy and require a lot of time.
Fixes hound double-init bugs and enforces sci-hound module parity.
- Fixes the double init bug that affected the Sci-hound. engineering hound, ERT borg. and service hound.
- Enforces module parity between the sci-hound and science drone modules. ensuring they are both capable of the same work- and that the sci-hound doesn't have half of the modules required for xenobiology.
- removes duplicate dogborg jaws and nonfunctional duplicate cable-coil from the sci-hound module
- adds the portable destructive analyzer from the sci-drone to the sci-hound so interacting with vore content is optional to do your job
- Fixes a double init bug which causes errors in the server console.
- Ensures that both science modules can do the same things while removing duplicate and nonfunctional modules from the one that had it.
- please god let me have the normal analyzer i'm tired of having to eat all the fucking things I don't want to do it
🆑 fix: removes ..() from the end of the science, engineering, ERT, and Service hound modules to ensure they do not double-init fix: removes duplicate and nonfunctional modules from the sci-hound cyborg add: adds modules in-line with the normal science drone add: adds the portable destructive analyzer to the sci-hound, /🆑 This is my first PR. please tell me if I've done anything wrong and what to change about it.
TIN-TIN
The standard Lorem Ipsum passage, used since the 1500s "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
Section 1.10.32 of "de Finibus Bonorum et Malorum", written by Cicero in 45 BC "Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur?"
1914 translation by H. Rackham "But I must explain to you how all this mistaken idea of denouncing pleasure and praising pain was born and I will give you a complete account of the system, and expound the actual teachings of the great explorer of the truth, the master-builder of human happiness. No one rejects, dislikes, or avoids pleasure itself, because it is pleasure, but because those who do not know how to pursue pleasure rationally encounter consequences that are extremely painful. Nor again is there anyone who loves or pursues or desires to obtain pain of itself, because it is pain, but because occasionally circumstances occur in which toil and pain can procure him some great pleasure. To take a trivial example, which of us ever undertakes laborious physical exercise, except to obtain some advantage from it? But who has any right to find fault with a man who chooses to enjoy a pleasure that has no annoying consequences, or one who avoids a pain that produces no resultant pleasure?"
Section 1.10.33 of "de Finibus Bonorum et Malorum", written by Cicero in 45 BC "At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat."
1914 translation by H. Rackham "On the other hand, we denounce with righteous indignation and dislike men who are so beguiled and demoralized by the charms of pleasure of the moment, so blinded by desire, that they cannot foresee the pain and trouble that are bound to ensue; and equal blame belongs to those who fail in their duty through weakness of will, which is the same as saying through shrinking from toil and pain. These cases are perfectly simple and easy to distinguish. In a free hour, when our power of choice is untrammelled and when nothing prevents our being able to do what we like best, every pleasure is to be welcomed and every pain avoided. But in certain circumstances and owing to the claims of duty or the obligations of business it will frequently occur that pleasures have to be repudiated and annoyances accepted. The wise man therefore always holds in these matters to this principle of selection: he rejects pleasures to secure other greater pleasures, or else he endures pains to avoid worse pains."
help: [email protected]
[change] redo the entire fucking OpenGL renderer (again)
Basically:
- pre/post shaderpacks aren't a thing anymore, only "pre" shaders are used. THIS HAS MASSIVE PERFORMANCE IMPROVEMENTS
- new geometry stage has been added. this should allow for more interesting customization
- the shaders are responsible for EVERYTHING. EVEN COLOR MIXING IS UP TO THE SHADER TO HANDLE PROPERLY
- this commit still hella broken unsurprisingly, A LOT OF FEATURES ARE MISSING AS THIS IS A CHANGE TO THE ENTIRE RENDERER
- a long ass list of uniforms is unfortunately required as passing through structs in GLSL seems to be a lost mission
- the resolution scale option doesn't do shit anymore
- the projection matrix is no more
- VERY WIP, THIS CODE IS DEFINITELY GOING TO BE CHANGED
- VERY VERY POWERFUL SHADERS
- OpenGL 4.2 HENCEFORTH REQUIRED (sorry not sorry)
- Very simple "renderer-side" C code (FINALLY)
- Actual MSAA possible since the renderer is not split into multiple stages anymore and no more texture manipulation
- Color blending behaviour is the SHADERS duty from now on
- Fragment shader HACKS still needed, but that's due to how OpenGL and graphics work in general (at no fault of my code, fortunately). And, no, working around this is entirely a pointless effort. You'll just end up wasting everyone's time. Deal with it.
I'm too lazy to finish it, so this'll get commited as an inter-mediary version.