Browse source

Changelog

Query
From:
To:
Branch:
Path:
Message:
BugID:
User: +
Format:
: 2 checkins (+18/-1) by Henrik Grubbström (Grubba) <grubba@grubba.org> : 13 checkins (+601/-637) by 3 people : 21 checkins (+408/-304) by 3 people : 13 checkins (+135/-139) by 2 people : 1 checkin (+76/-29) by Henrik Grubbström (Grubba) <grubba@grubba.org> : 1 checkin (+75/-70) by Henrik Grubbström (Grubba) <grubba@grubba.org> : 1 checkin (+21/-6) by Henrik Grubbström (Grubba) <grubba@grubba.org> : 3 checkins (+48/-12) by Henrik Grubbström (Grubba) <grubba@grubba.org> : 11 checkins (+279/-84) by 4 people : 8 checkins (+78/-47) by 2 people : 4 checkins (+25/-191) by 2 people : 4 checkins (+105/-142) by 2 people : 5 checkins (+183/-76) by 2 people : 3 checkins (+24/-21) by 2 people : 6 checkins (+34/-2) by Henrik Grubbström (Grubba) <grubba@grubba.org> : 5 checkins (+59/-34) by 2 people : 31 checkins (+839/-507) by 3 people : 2 checkins (+57/-41) by Henrik Grubbström (Grubba) <grubba@grubba.org> : 33 checkins (+1171/-458) by 3 people : 5 checkins (+59/-40) by Henrik Grubbström (Grubba) <grubba@grubba.org> : 9 checkins (+84/-74) by 2 people : 7 checkins (+230/-19) by Henrik Grubbström (Grubba) <grubba@grubba.org> : 5 checkins (+43/-47) by 2 people : 7 checkins (+70/-35) by 2 people : 38 checkins (+762/-2967) by 3 people : 29 checkins (+619/-276) by 4 people : 4 checkins (+23/-24) by 2 people : 2 checkins (+25/-17) by 2 people : 30 checkins (+154/-758) by 2 people : 56 checkins (+758/-4053) by 3 people : 12 checkins (+184/-133) by 3 people : 4 checkins (+69/-4) by 2 people : 50 checkins (+2577/-2444) by 2 people : 127 checkins (+728/-587) by 4 people : 67 checkins (+2296/-1341) by 3 people : 1 checkin (+37/-0) by Henrik Grubbström (Grubba) <grubba@grubba.org> : 171 checkins (+6981/-7588) by 5 people : 4 checkins (+27/-20) by 2 people : 11 checkins (+83/-45) by 3 people : 67 checkins (+255/-170) by 5 people : 22 checkins (+132/-118) by 3 people Lines added/removed recently

Today; Friday 22 August 2014

2014-08-22 18:54:48 (1 hour ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>

Nettle.BlockCipher16.CCM8: Fixed documentation reference.

2014-08-22 18:17:07 (2 hours ago) by Arne Goedeke <el@laramies.com>

pike_types: avoid the extra static storage
Gmp: get rid of warning

2014-08-22 18:00:14 (2 hours ago) by Arne Goedeke <el@laramies.com>

Pike cleanup: fix double free

Static strings created with the MAKE_CONST_STRING macros need not be
manually freed. In DO_PIKE_CLEANUP mode they are freed automatically,
or else they are intentionally leaked on program exit.
block_allocator: do not round up powers of 2

The family of round_up* functions rounds up to the next power of two.
This made most block allocators initial areas twice as big as intended.
Whitefish: fixed init_*_struct and exit_*_struct prototypes
Fixed some warnings about unused parameters

2014-08-22 17:02:32 (3 hours ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>

AutoDoc: Classes may have submodules...

In some circumstances classes can contain submodules. One example
being Nettle.BlockCipher()->CBC.

The documentation for such submodules was lost in the HTML-generation step.

2014-08-22 16:47:02 (4 hours ago) by Martin Nilsson <nilsson@opera.com>

Improved type checking.

2014-08-22 14:51:36 (6 hours ago) by Martin Nilsson <nilsson@opera.com>

Fixed autoconf induced PACKAGE_* warnings.
Fixed #pragma clang warnings.
Remove unused function zap_placeholder.
Fixed signedness warning. Why is array size signed?

2014-08-22 03:43:43 (17 hours ago) by Martin Nilsson <nilsson@opera.com>

Added testcase

Yesterday; Thursday 21 August 2014

2014-08-21 22:54:11 (21 hours ago) by Martin Nilsson <nilsson@opera.com>

Added void to zero argument functions.

2014-08-21 22:51:29 (22 hours ago) by Martin Nilsson <nilsson@opera.com>

Corrected init_rs and free_rs arguments.

2014-08-21 20:11:55 (1 day ago) by Martin Nilsson <nilsson@opera.com>

Added void to zero argument functions.

2014-08-21 20:00:22 (1 day ago) by Martin Nilsson <nilsson@opera.com>

Added const to master_file_location.

2014-08-21 18:06:47 (1 day ago) by Per Hedbor <ph@opera.com>

Removed a significant amount of warnings

(about 20 lines per file) by not generating 8bit op 8bit -> 32bit overflow macros.
They are not used, anyway
Now compiles with the bytecode interpreter

2014-08-21 14:22:31 (1 day ago) by Kevin O'Rourke <kevinor@opera.com>

TURBO2-711: Fix URI path combining for empty base URI path.

2014-08-21 12:27:56 (1 day ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>

FreeType: Stricter type checking for Face::create().

The font filename is a narrow string, and the face number
must not be negative.

2014-08-21 12:22:09 (1 day ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>

FreeType: Fixed documentation typo.

2014-08-21 03:15:20 (2 days ago) by Bill Welliver <bill@welliver.org>

Image.Freetype: allow use of faces beyond position 0 in font files.

Wednesday 20 August 2014

2014-08-20 18:34:42 (2 days ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>

encode_value: Improved support for variant functions.

Variant functions weren't dumped correctly if they were
overloading inherited non-variant functions.

Fixes remaining issue with the dumping of Crypto.RSA.State.

2014-08-20 17:33:24 (2 days ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>

encode_value: Don't regard the variant dispatcher as a CFUN.

The variant dispatcher is a CFUN that may show up in pure Pike
programs, so don't fallback to the C-program encodings when
the only CFUN is the variant dispatcher.

Potentially fixes dumping problems with Crypto.RSA.State
(where generate_key() is a variant function).

2014-08-20 17:30:45 (2 days ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>

Compiler: Added low_is_variant_dispatcher().

This function is useful when you have an identifier that might be a
variant dispatcher, but you don't know of a corresponding reference.

2014-08-20 16:14:26 (2 days ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>

decode_value: Removed some dead code.

The macros getdata() and getdata3() are no more.

2014-08-20 15:51:10 (2 days ago) by Per Hedbor <ph@opera.com>

Added missing space.

2014-08-20 14:50:04 (2 days ago) by Per Hedbor <ph@opera.com>

Include the documentation for create, if any, in the class documentation
Describe some of the lfun methods more intuitively

As an example, _indices() -> indices(type arg)

2014-08-20 14:47:48 (2 days ago) by Tobias S. Josefowitz <tobij@tobij.de>

Postgres: fix one more literal_X_string issue

2014-08-20 11:58:12 (2 days ago) by Per Hedbor <ph@opera.com>

These softcasts generated "is noop" warning
Crypto.DSA -> Crypto.DSA.State

Tuesday 19 August 2014

2014-08-19 17:15:10 (3 days ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>

Compiler: Improved soundness of the op-assign optimizer.

Avoid the risk of converting expressions like

a[i] += i++;

into the equivalent of

tmp = a[i] + i++;
a[i] = tmp;

2014-08-19 14:07:29 (3 days ago) by Tobias S. Josefowitz <tobij@tobij.de>

fix two more literal_X_string issues

2014-08-19 14:04:53 (3 days ago) by Tobias S. Josefowitz <tobij@tobij.de>

fix one more literal_X_string issue

2014-08-19 00:07:46 (4 days ago) by Martin Nilsson <nilsson@opera.com>

Some limit-crossing tests we apparently need.

Monday 18 August 2014

2014-08-18 23:31:29 (4 days ago) by Martin Nilsson <nilsson@opera.com>

Shortened some error messages.

2014-08-18 22:32:07 (4 days ago) by Martin Nilsson <nilsson@opera.com>

Less noise when running the testsuite. Strings are truncated to 4k in the output.

2014-08-18 20:23:34 (4 days ago) by Per Hedbor <ph@opera.com>

Fixed two errors with literal_X_string usage.

2014-08-18 20:12:05 (4 days ago) by Martin Nilsson <nilsson@opera.com>

Improved cast method.
Fixed casting bug.
Fixed warnings.

2014-08-18 19:45:20 (4 days ago) by Martin Nilsson <nilsson@opera.com>

Now works with dmalloc again.

2014-08-18 19:17:14 (4 days ago) by Martin Nilsson <nilsson@opera.com>

Reuse the new type pike strings where possible and easy.

2014-08-18 18:06:58 (4 days ago) by Arne Goedeke <el@laramies.com>

Strings: Readded handling for short string in add_string_status()

2014-08-18 17:38:59 (4 days ago) by Martin Nilsson <nilsson@opera.com>

Improved cast.

2014-08-18 17:19:04 (4 days ago) by Martin Nilsson <nilsson@opera.com>

Fixed some GMP tests.

2014-08-18 17:03:53 (4 days ago) by Per Hedbor <ph@opera.com>

Added F_UNDEFINEDP as an opcode

Also added a convenience SVAL(X) macro that returns the offset to
different parts of the svalue X values from the base register.

Also added some usage of the SVAL function in a few places.

Chagned to 32-bit arithmetics for types in a few locations. It saves
on code size, if nothing else (no REX prefix unless R8.. is used)

2014-08-18 15:28:39 (4 days ago) by Per Hedbor <ph@opera.com>

Checking using tst_reg32 is not optimal in branch_if_non_zero.

2014-08-18 15:14:48 (4 days ago) by Per Hedbor <ph@opera.com>

Fixed F_ADD, also disabled the int+int optimization in it.

Most cases are already caught by the ADD_INTS opcode.
At least if people type their code.

Switched a few cmp(reg,PIKE_T_INT) to test(reg).
Automatically convert cmp_reg[32](reg,0) to test_reg(reg).

2014-08-18 15:12:34 (4 days ago) by Per Hedbor <ph@opera.com>

Reintroduced missing test before using private globals.
Fixed a few missing debug prologues.
Added F_UNDEFINEDP and F_DESTRUCTEDP.

These are the same as the functions with the same name, but lends
themselves to inlining.
Fixed bug in F_UNDEFINEDP

2014-08-18 14:30:24 (4 days ago) by Martin Nilsson <nilsson@opera.com>

Deprecate cast_to_int, cast_to_string and cast_to_float.

2014-08-18 14:19:15 (4 days ago) by Tobias S. Josefowitz <tobij@tobij.de>

precompile: use (array(string)) cast instead of map+lambda.

2014-08-18 14:10:45 (4 days ago) by Martin Nilsson <nilsson@opera.com>

Updated cast methods in src also.

2014-08-18 14:02:48 (4 days ago) by Martin Nilsson <nilsson@opera.com>

Disable the most problematic opcodes.

2014-08-18 12:46:56 (4 days ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>

Updated to tzdata2014f.

Also removed some obsolete files (solar8[789]) and added zone1970.tab.

Also adds some further files.

The tzdata directory should now be fully in sync with the tzdata2014f dist.

2014-08-18 12:42:45 (4 days ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>

Updated to tzdata2014f.

Also removed some obsolete files (solar8[789]) and added zone1970.tab.

The tzdata directory should now be fully in sync with the tzdata2014f dist.

2014-08-18 12:20:35 (4 days ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>

Strings: Survive xalloc() throwing errors in realloc.

Short string contents would be passed to free(3C) if the
call to xalloc() failed.

Same for truncating strings if ba_alloc() ever starts throwing
errors instead of fatals.

2014-08-18 10:56:00 (4 days ago) by Tobias S. Josefowitz <tobij@tobij.de>

->cast() in Parser.C.Token is no longer accessible.

Thus no fun with some_array->cast() automapping in the CMOD precompiler.

2014-08-18 10:32:17 (4 days ago) by Arne Goedeke <el@laramies.com>

strings: split string header and contents

All string structs are now allocated by the block allocator while the
actual string content is kept in a different area. Short strings with
byte length smaller than sizeof(struct pike_string) have their content
allocated from the block allocator, aswell. In most cases short string
contents are allocated on creation and therefore the data will end up
directly after the header in memory.

Sunday 17 August 2014

2014-08-17 14:04:22 (5 days ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>

Testsuite: Added code-generator test.

This test fails if F_ASSIGN_PRIVATE_TYPED_GLOBAL_AND_POP doesn't pop.

2014-08-17 00:33:34 (6 days ago) by Per Hedbor <ph@opera.com>

Added INC,ADD, DEC and SUBTRACT

These are inlined when both arguments are integers.

It would be fairly to do for floats as well.

DIV/MOD/AND/MULT etc would be fairly easy to add as well, but
most require some more decoding of the intel instruction
reference manual.

Saturday 16 August 2014

2014-08-16 23:45:10 (6 days ago) by Per Hedbor <ph@opera.com>

Added a few more global variable opcodes.

Gotta catch em all!

This time:

PRIVATE_IF_DIRECT_GLOBAL and ASSIGN_PRIVATE_IF_DIRECT_GLOBAL

These will fetch or assign a global variable if the currently
executing program is the program the object is cloned from.

These are only slightly slower than the F_PRIVATE_GLOBAL family of
opcodes, and the overhead if the global is not actually private is
minimal.

Missing: [ASSIGN_]PRIVATE_IF_DIRECT_TYPED_GLOBAL[_AND_POP] and
ASSIGN_PRIVATE_IF_DIRECT_GLOBAL_AND_POP.

2014-08-16 23:38:06 (6 days ago) by Martin Nilsson <nilsson@opera.com>

Only give the basic type names to cast() to avoid post processing in cast().

2014-08-16 23:26:00 (6 days ago) by Martin Nilsson <nilsson@opera.com>

Make illegal casts throw exception.

2014-08-16 23:23:31 (6 days ago) by Martin Nilsson <nilsson@opera.com>

Returning UNDEFINED from cast() now produces an exception.

2014-08-16 23:15:21 (6 days ago) by Martin Nilsson <nilsson@opera.com>

Don't call cast directly.

2014-08-16 18:21:22 (6 days ago) by Martin Nilsson <nilsson@opera.com>

Added more protected.

2014-08-16 18:14:35 (6 days ago) by Martin Nilsson <nilsson@opera.com>

Use variant to support multiple constructors. Serialize correctly. Added more protected. Removed some 8bit strings.

2014-08-16 13:45:52 (6 days ago) by Per Hedbor <ph@opera.com>

Changes to CHANGES

2014-08-16 13:37:44 (6 days ago) by Per Hedbor <ph@opera.com>

Moved a few modules around in the traditional refdoc

We really should update this file completely, I think
Removed a few non-existing overloaded operators
Fixed autodoc syntax error

2014-08-16 13:35:43 (6 days ago) by Per Hedbor <ph@opera.com>

Avoid dropping the toplevel operator documentation.

Also, changed format for getters/setters somewhat.

2014-08-16 12:39:21 (6 days ago) by Per Hedbor <ph@opera.com>

Override write and werror in hilfe

The overriden version uses readline->write to actually print the data.

This is rather convenient when writing asyncronous code in hilfe,
newlines are handled correctly and it interacts fairly well with the
input system.

The overriding is intentionally using add_constant to also override
debug output in modules that are loaded after hilfe is started.
Did some overhauling of the Gdbm module

o Gdbm.gdbm is now known as Gdbm.DB
o Added support for iteration over gdbm objects
o Added overloading of _m_delete, _indices and _values.
o Added some more documentation

2014-08-16 11:29:47 (6 days ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>

SSL.Constants: Added some more constants.
SSL.Constants: ALPN is now RFC 7301.

2014-08-16 04:03:44 (7 days ago) by Martin Nilsson <nilsson@opera.com>

Fix cut-n-paste error.

2014-08-16 03:25:04 (7 days ago) by Martin Nilsson <nilsson@opera.com>

Less crazy coding style.

2014-08-16 00:10:00 (7 days ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>

Compiler [amd64]: Fixed a few typos.

The code generator for F_ASSIGN_PRIVATE_TYPED_GLOBAL_AND_POP
was broken (generated code for F_ASSIGN_PRIVATE_TYPED_GLOBAL)
due to a cut-n-paste miss.

This caused some code in Roxen to fail.

Fixes [LysLysKOM 20929878].

Friday 15 August 2014

2014-08-15 22:21:17 (7 days ago) by Martin Nilsson <nilsson@opera.com>

Less zero_type.

2014-08-15 17:05:50 (1 week ago) by Martin Nilsson <nilsson@opera.com>

Use has_index instead of zero_type

2014-08-15 17:00:21 (1 week ago) by Martin Nilsson <nilsson@opera.com>

Added protected and private.

2014-08-15 16:55:02 (1 week ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>

Compiler: Fixed memory leak.

The F_*_EQ optimizer leaked types.

2014-08-15 16:52:26 (1 week ago) by Martin Nilsson <nilsson@opera.com>

Make _sprintf protected.

2014-08-15 16:18:45 (1 week ago) by Martin Nilsson <nilsson@opera.com>

AbstractParser actually abstract now.

2014-08-15 16:14:51 (1 week ago) by Martin Nilsson <nilsson@opera.com>

Hide snmp_errlist
Better MD5
Default to mark create as protected, not static.

2014-08-15 16:05:39 (1 week ago) by Per Hedbor <ph@opera.com>

Removed CLEAR_2_LOCAL & CLEAR_4_LOCAL, added CLEAR_N_LOCAL

This simplifies things a bit, and reduces codesize at times.

The record I have seen while running the testsuite was a clear_n_local(23).

2014-08-15 15:59:45 (1 week ago) by Martin Nilsson <nilsson@opera.com>

static is now deprecated, as per the very long term plan.

2014-08-15 15:49:53 (1 week ago) by Martin Nilsson <nilsson@opera.com>

static -> protected

2014-08-15 15:41:48 (1 week ago) by Martin Nilsson <nilsson@opera.com>

private implies protected

2014-08-15 15:38:45 (1 week ago) by Martin Nilsson <nilsson@opera.com>

How did that get away?

2014-08-15 15:20:08 (1 week ago) by Per Hedbor <ph@opera.com>

Added F_CLEAR_4_LOCALS opcode.

I see a need for a CLEAR_N_LOCALS one instead.

2014-08-15 15:13:36 (1 week ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>

Compiler: Added some CALL_*_N peephole rules.
Compiler: Added some trivial peep-hole optimizer rules.

2014-08-15 14:33:38 (1 week ago) by Per Hedbor <ph@opera.com>

Added lvalue version of lexical_local

2014-08-15 14:31:00 (1 week ago) by Per Hedbor <ph@opera.com>

Removed a bunch of commented out misleading debug

(copy paste much? :)
Added F_LEXICAL_LOCAL amd64 edition

2014-08-15 14:10:04 (1 week ago) by Martin Nilsson <nilsson@opera.com>

Better typing.

2014-08-15 12:05:54 (1 week ago) by Arne Goedeke <el@laramies.com>

Protocols.WebSocket: make the stream and parser available

2014-08-15 04:39:50 (1 week ago) by Martin Nilsson <nilsson@opera.com>

hash_7_4 is not deprecated.

2014-08-15 04:23:34 (1 week ago) by Martin Nilsson <nilsson@opera.com>

Fix a crash.

Thursday 14 August 2014

2014-08-14 19:51:50 (1 week ago) by Per Hedbor <ph@opera.com>

Added note about F_ASSIGN_SELF in docode.c

2014-08-14 19:49:09 (1 week ago) by Per Hedbor <ph@opera.com>

Missed one side-effect
Merged redundant comments.

2014-08-14 19:34:15 (1 week ago) by Per Hedbor <ph@opera.com>

Fixed an issue with the removal of +=

When you did things like a[i++] += 10; the code was (more or less)
converted to a[i++] = [typeof(a[])](a[i++]+10); which was not what
you really wanted.

Solved by adding a new opcode that is used for the specific case where
the LHS in the assignment has side effects.

Also, in this somewhat uncommon case automap is now no longer
supported.

Note that things like a[i++] = a[i]+b[i] is not using this new opcode,
only += and friends use it.

2014-08-14 19:32:06 (1 week ago) by Per Hedbor <ph@opera.com>

For ease of debugging: Have the "token" field in node_s be enum Pike_codes

This helps a lot when developing in the compiler.

Currently only happens when PIKE_DEBUG is enabled.

2014-08-14 17:32:53 (1 week ago) by Per Hedbor <ph@opera.com>

Fixed some more cases of automap on the left side of an assignment.

It more or less works as one would expect now.

2014-08-14 16:51:37 (1 week ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>

SSL: Updated to the new Crypto.Sign API.
Crypto.RSA: Break compilation circularity.

There's a circularity between Crypto.RSA and Standards.PKCS.RSA.
Crypto.Sign: Added sub-class State.

This makes the Crypto.Sign API to behave closer to the other Crypto APIs.

This affects code that uses Crypto.RSA and Crypto.DSA (which now are
modules and not classes).

Crypto.ECC.Curve.ECDSA is currently unmodified.
Crypto.Sign: Fixed indent.
Standards.PKCS: Updated to the new Crypto.Sign API.
Crypto.RSA: Improved robustness of compat generate_key().

2014-08-14 16:05:12 (1 week ago) by Per Hedbor <ph@opera.com>

Optimized branch optimization somewhat.

2014-08-14 15:46:10 (1 week ago) by Per Hedbor <ph@opera.com>

Removed F_IDENTIFIER: It was never generated.

This lessens the confusion and code-duplication somewhat.

2014-08-14 15:36:53 (1 week ago) by Per Hedbor <ph@opera.com>

Added "deprecated" to the list of hilfe type modifiers.
For now: Add automatic softcast nodes for += with friends

The actual assignment was never typechecked before.
So now everything works like it used to again.
Dropped the separate opcodes for +=, *= etc

This actually generates, on average, better code.
It also removes a rather significant chunk of duplicated code.
Unified formatting slightly
Found some more F_X_EQ instances.
Added F_ASSIGN_PRIVATE_TYPED_GLOBAL[_AND_POP].

This completes the suite of private global opcodes.
Fixed support for automap in assignments.

This was handled in a somewhat so-so manner in += and friends.

Specifically, it ignored the [*] on the LHS and just assigned the
variable to the result of the automap.

So, x[*]+=10; was transformed to x = x[*] + 10;

It also only worked for += with friends, not =, so x[*] = x[*] + 1 did
not work.

Now a new opcode is used that assigns array elements individually.
This means that this works:

| array x = ({1,2,3});
| array y = x;
|
| x[*] += 10;
| x==y; // will now be true, was previously false.

Of course, this actually changes how automap works.

The assignment is currently only done on the toplevel, x[*][*] =
x[*][*]+1 still works just fine, but it has some similarities with the
previous situation, the arrays in the toplevel array will be swapped,
not altered.

this will be fixed soonish(tm)
Added machinecode verison of F_LOCAL_LOCAL_INDEX

Specifically, this optimizes array[int].
Also includes incomplete f_branch_if_type_is_not.
Changed back to using apply(current_object,function).

The name of the C-function seems to change between f_cq__decode and
f_cq__Image_WebP_decode randomly. There is no obvious pattern, at least
Removed overloading of non-existent operators
Forgot to fix one occurence of `!=.

2014-08-14 15:11:10 (1 week ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>

Image.PSD: Minor cleanup.

Added psd_read_schar() analogous to psd_read_uchar().

2014-08-14 12:22:53 (1 week ago) by Per Hedbor <ph@opera.com>

Added F_PRIVATE_TYPED_GLOBAL.

Much like PRIVATE_GLOBAL, but handles typed svalues
(everything but int, function and object).

No assign yet.

Wednesday 13 August 2014

2014-08-13 15:36:25 (1 week ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>

Doc: Reduced verbosity.

2014-08-13 15:33:48 (1 week ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>

Doc: Improved robustness of extractor change detector.

Use git diff instead of git show.

This means that meerges now will be handled correctly.

2014-08-13 15:30:34 (1 week ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>

Doc: Do a full scan in a few more cases.

This should be essentially like the old extractor, but still
retaining most of the increase in speed.

2014-08-13 12:18:02 (1 week ago) by Per Hedbor <ph@opera.com>

git_export_autodoc now detects non-documentation commits

This speeds up extraction significantly

Tuesday 12 August 2014

2014-08-12 21:37:31 (1 week ago) by Martin Nilsson <nilsson@opera.com>

Let's hide 7.6:: and 7.8:: as well in traditional mode.

2014-08-12 21:33:38 (1 week ago) by Martin Nilsson <nilsson@opera.com>

OO a bit more.

2014-08-12 19:24:05 (1 week ago) by Martin Nilsson <nilsson@opera.com>

Looks like we forgot to deprecate spider when we introduced deprecated. Oops.

2014-08-12 19:11:17 (1 week ago) by Martin Nilsson <nilsson@opera.com>

Fixed typo.

2014-08-12 18:36:16 (1 week ago) by Per Hedbor <ph@opera.com>

Fixed documentation syntax error
Dropped 7.0 hiding support in the traditional manual.

Unless I am incorrect this list should have included 7.6 and 7.8 as well

2014-08-12 17:23:13 (1 week ago) by Per Hedbor <ph@opera.com>

When resolving addresses, first try with forced numberic hosts

Also, give the numericport hint when the port is numeric.

2014-08-12 14:06:24 (1 week ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>

SSL: Increased session reuse paranoia.

Don't reuse sessions which differ from what a newly negotiated
session would be.

This fixes potential cross-site attacks and similar.

2014-08-12 01:57:00 (2 weeks ago) by Per Hedbor <ph@opera.com>

Added a note about the lfun list in the autodoc parser
Some minor tweaks to the autodoc format

o Getters and setters are now automatically convereted to variables in
the documentation. If there is only a getter or only a setter a
suitable note is added.

o Drop documentation for non-existing lfuns, they only confuse things.

2014-08-12 01:52:48 (2 weeks ago) by Per Hedbor <ph@opera.com>

Pass on the position more often
There is such a function as error.

Monday 11 August 2014

2014-08-11 23:43:40 (2 weeks ago) by Martin Nilsson <nilsson@opera.com>

Use variant.

2014-08-11 23:08:55 (2 weeks ago) by Martin Nilsson <nilsson@opera.com>

Fixed stderr messages.

2014-08-11 22:57:16 (2 weeks ago) by Martin Nilsson <nilsson@opera.com>

Remove Pike 7.0 support. We now only support post-2000 code.

2014-08-11 22:54:57 (2 weeks ago) by Martin Nilsson <nilsson@opera.com>

Use Yabu.DB to fix deprecation warning.

2014-08-11 20:34:25 (2 weeks ago) by Per Hedbor <ph@opera.com>

It turns out that low_split is used from the testsuite.

Make it visible externally again.

2014-08-11 20:31:55 (2 weeks ago) by Per Hedbor <ph@opera.com>

Use the existing low-level tokenizer for Parser.C.split

This is significantly faster, and the code was already there anyway.
Mostly whitespace changes

2014-08-11 19:57:53 (2 weeks ago) by Per Hedbor <ph@opera.com>

Comment and whitespace changes
Do not emit private assign for alias identifiers

Fixes the remaining new crashers in the testsuite

2014-08-11 19:08:15 (2 weeks ago) by Per Hedbor <ph@opera.com>

Removed some stray debug
Fixed reference leak in Image.WebP.decode

The image object only had one reference, but had two copies
in the result mapping.

Also somewhat lower-level handling of things in decode().

Mainly because it made it much easier to debug things.

2014-08-11 18:17:12 (2 weeks ago) by Per Hedbor <ph@opera.com>

Reduced the number of type rules somewhat

2014-08-11 17:59:12 (2 weeks ago) by Per Hedbor <ph@opera.com>

Removed some type * tests

2014-08-11 17:57:09 (2 weeks ago) by Per Hedbor <ph@opera.com>

Removed support for *-syntax without actually changing the grammar much

This is basically step 1 of the *==array syntax removal,
the easy part. Since there is no need to start renumbering things
in the rules.

2014-08-11 17:29:52 (2 weeks ago) by Per Hedbor <ph@opera.com>

Updated Yabu testsuite to use Yabu.DB

2014-08-11 17:24:14 (2 weeks ago) by Per Hedbor <ph@opera.com>

Read somewhat fewer bytes

Mainly, this saves four bytes of code size for each branch_when_{eq,ne}.

2014-08-11 17:12:10 (2 weeks ago) by Per Hedbor <ph@opera.com>

Avoid letting PIKE_T_FREE have bit 4 set.

2014-08-11 16:36:53 (2 weeks ago) by Per Hedbor <ph@opera.com>

Do not allow assignment of private variables in destructed objects.

2014-08-11 16:26:25 (2 weeks ago) by Per Hedbor <ph@opera.com>

Fixed "hilfe arrow up" crash.

The code crashed when assigning a private global variable
that was either an integer or float with bit 8 set.
Verify ENTRY_PROLOGUE_SIZE size.
Keep pike_fp->current_storage up to date in pike functions.

This speeds up global variable accesses quite a lot.
Limit lvalue-creation for a = function(a,...) to the case
when there is at least one more argument.
Some more static on functions

Also added convenience functions to check if an svalue is a reference type.
Revert "Keep pike_fp->current_storage up to date in pike functions."

This reverts commit 9129e401d0db1703a938794d2d61d73b4b214992.

2014-08-11 14:28:51 (2 weeks ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>

Stdio.sendfile: Fixed use before set.

Fixes "Indexing the NULL value with \"call_out\".", when
Stdio.sendfile(({""}), 0, -1, -1, 0, simulated_file, cb, ...).

Also fixes issue where the trailers weren't sent if there was no
source file, no headers and a non-empty file length.

Fixes [bug 7230].

2014-08-11 14:20:51 (2 weeks ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>

Stdio.sendfile: Fixed use before set.

Fixes "Indexing the NULL value with \"call_out\".", when
Stdio.sendfile(({""}), 0, -1, -1, 0, simulated_file, cb, ...).

Also fixes issue where the trailers weren't sent if there was no
source file, no headers and a non-empty file length.

Fixes [bug 7230].

2014-08-11 12:05:10 (2 weeks ago) by Per Hedbor <ph@opera.com>

Autodoc fix
Added Yabu documentation

Also renamed db -> DB and lookup -> LookupDB
Check for destruction of object before allowing access to globals

2014-08-11 00:06:25 (2 weeks ago) by Martin Nilsson <nilsson@opera.com>

Fixed an invariance vaguely pointed out by Niels.

Sunday 10 August 2014

2014-08-10 23:36:38 (2 weeks ago) by Martin Nilsson <nilsson@opera.com>

Move 7.4 test to 7.4 testsuite.
Don't test for 0.6 anymote.

2014-08-10 23:19:05 (2 weeks ago) by Martin Nilsson <nilsson@opera.com>

Updated from 0.6 to 7.0

2014-08-10 22:52:24 (2 weeks ago) by Martin Nilsson <nilsson@opera.com>

Remove Pike 0.6 support.

2014-08-10 22:41:12 (2 weeks ago) by Martin Nilsson <nilsson@opera.com>

Remove Pike 0.6 support.
Fix Pike 7.0 compatibility issues.
Removed unused variable.

2014-08-10 22:17:17 (2 weeks ago) by Martin Nilsson <nilsson@opera.com>

Remove Pike 0.5 support.

2014-08-10 21:17:24 (2 weeks ago) by Martin Nilsson <nilsson@opera.com>

Expose class extension as Extension for typing. Fixes compilation error.

2014-08-10 21:05:23 (2 weeks ago) by Martin Nilsson <nilsson@opera.com>

Cap compatibility mode to lowest supported.

2014-08-10 20:19:10 (2 weeks ago) by Martin Nilsson <nilsson@opera.com>

Added ;

2014-08-10 14:42:49 (2 weeks ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>

SSL.state: Fixed type for compress().

2014-08-10 14:40:33 (2 weeks ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>

Gz: Stricter string types.

All the string types in the module are now declared as 8-bit strings.

Removed some now redundant documentation warnings about wide strings.

2014-08-10 14:01:25 (2 weeks ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>

Standards.ASN1: Removed the TeletexString type.

This ASN.1 string type was encoded according to T.51/T.61,
and was not handled properly by other software at the time
(~1995) when it was in use.

Saturday 09 August 2014

2014-08-09 13:46:30 (2 weeks ago) by Arne Goedeke <el@laramies.com>

cpp(): added documentation

2014-08-09 11:13:06 (2 weeks ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>

SSL.File: Improved robustness of close handling.

The close_state is now set correctly even when there's a pending
close_errno and the peer closes the connection.

Friday 08 August 2014

2014-08-08 19:49:57 (2 weeks ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>

Mappings: Fixed assertion.

Ensure that there are at least as many keypairs as buckets in
created mappings.

Fixes fatal "Pretty mean hashtable there buster!".

2014-08-08 14:26:40 (2 weeks ago) by Per Hedbor <ph@opera.com>

Added missing variable
Revert "Changed fast_call_threads_etc handling with valgrind"

This reverts commit 1c4cf54199bd51903bc071a5aceff11e40c00222.

Needs more work, currently it is causing crashes.
More compact type checks, no need to do a cmp, & is enough now.

Thursday 07 August 2014

2014-08-07 21:21:03 (2 weeks ago) by Martin Nilsson <nilsson@opera.com>

Correctly check the fragment size in the different stages of decoding.

2014-08-07 20:53:45 (2 weeks ago) by Martin Nilsson <nilsson@opera.com>

Stop operating directly on packet->fragment.

2014-08-07 20:17:06 (2 weeks ago) by Per Hedbor <ph@opera.com>

Optimize assign_X_and_pop + push_X to just assign_X

2014-08-07 19:10:11 (2 weeks ago) by Per Hedbor <ph@opera.com>

Generate more compact code for int+int.

2014-08-07 18:27:43 (2 weeks ago) by Per Hedbor <ph@opera.com>

Added a few benchmarks to check the last optimization

2014-08-07 18:24:32 (2 weeks ago) by Per Hedbor <ph@opera.com>

Optimized access to private/final global variables

Especially the machine code version is now significantly faster, it
will simply read the variable directly from the known byte offset
instead of calling a function that resolves it in the vtable.

Gives about a 20x speedup of trivial code along the lines of
globala = globala + globalb;

Also tried to disable some of the optimizations that causes lvalues to
be generated instead of the desired global/assign_global opcodes.

For now this is only done if the global variabeles are known to not be
arrays, multiset, strings, mapping or objects, since those
optimizations are needed to quickly append things to arrays (and
mappings/multiset, but that is less common. It is also needed for
destructive modifications of strings, something that is even less
common).
Removed some #if 0:ed code

Fixes a warning when compiling with debug.
Added CALL_LFUN<X>, useful when the number of arguments is known
Hide the REG_<X> macros/enums.

It is just too easy to accidentally write REG_RBX instead of P_REG_RBX.

This causes rather hard to find bugs in the generated code.
Changed fast_call_threads_etc handling with valgrind

Instead of disabling it entirely, clear it at function entry.
This gets rid of the uninitialized value, and slows things down less
than not doing the optimization.
Only set IDENTIFIER_NO_THIS_REF for object and function variables
Save a few bytes of code size for each free_svalue

8-bit constants generates smaller code.

2014-08-07 17:49:37 (2 weeks ago) by Marcus Comstedt <marcus@mc.pp.se>

_Charset: Correct forms of arabic characters in IBM encodings

This brings the selection of presentation forms in line with what
is published on http://www-01.ibm.com/software/globalization/g11n-res.html

Thanks to Chris Angelico for discovering the issue.
_Charset: Fix box drawing characters for IBM character encodings

RFC 1345 incorrectly assigns code points with LIGHT/HEAVY strokes
when they should actually use SINGLE/DOUBLE strokes instead.

Thanks to Chris Angelico for discovering the issue.

2014-08-07 17:37:42 (2 weeks ago) by Martin Nilsson <nilsson@opera.com>

Stop sending the protocol version around so much.

2014-08-07 15:05:14 (2 weeks ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>

Thread.Queue: Added FIXME.

The Thread.Queue API ought to be extended to be compatible with ADT.Queue.

2014-08-07 15:02:46 (2 weeks ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>

SSL.File: Removed some redundant tests in read().

Wednesday 06 August 2014

2014-08-06 21:17:50 (2 weeks ago) by Martin Nilsson <nilsson@opera.com>

A bit more modernization.

2014-08-06 21:04:12 (2 weeks ago) by Martin Nilsson <nilsson@opera.com>

Prettier.

2014-08-06 19:45:48 (2 weeks ago) by Per Hedbor <ph@opera.com>

Removed Calendar_I.

It has been deprecated since before Jul 2000 (the first time
it was included in the main pike tree).

2014-08-06 18:20:32 (2 weeks ago) by Per Hedbor <ph@opera.com>

Added some (very very) minimal documentation to Protocols.X
Fixed typo in autodoc

2014-08-06 17:45:26 (2 weeks ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>

SSL.File: Added some documentation cross references.

2014-08-06 17:41:19 (2 weeks ago) by Martin Nilsson <nilsson@opera.com>

ke_method isn't used outside the select_cipher_suite function.
Updated with latest changes.

2014-08-06 17:27:17 (2 weeks ago) by Per Hedbor <ph@opera.com>

Documented Protocols.Ports and added simple /etc/services reading.

We should probably update the port list any decade now
Added basic documentation to Standards.FIPS10_4

2014-08-06 17:04:55 (2 weeks ago) by Martin Nilsson <nilsson@opera.com>

Move ke_factory to CipherSpec.

2014-08-06 16:48:31 (2 weeks ago) by Martin Nilsson <nilsson@opera.com>

Set ke_method before it is used.
Fixed documentation and trimmed code of set_compression_method.

2014-08-06 16:37:15 (2 weeks ago) by Per Hedbor <ph@opera.com>

Removed Standards.CIFF.

It could parse CIFF (nowdays mostly called camera raw:s)
from a specific model (Canon d30). Partly.

But no image decoding was done, and it can not parse any
files generated by another camera, or even a d30 with
an updated firmware.

2014-08-06 16:27:44 (2 weeks ago) by Martin Nilsson <nilsson@opera.com>

Make heartbleed probing optional and default off.
Hide and document marginal_size

2014-08-06 16:24:27 (2 weeks ago) by Martin Nilsson <nilsson@opera.com>

Fixed type

Tuesday 05 August 2014

2014-08-05 19:19:26 (2 weeks ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>

SSL.Session: Keep track of the protocol version.

SSL.Cipher.CipherSpec::verify() needs the version in the session
object to be up to date (or it will break with TLS 1.2 or higher).

Fixes interoperability with https://google.com/.

2014-08-05 16:39:35 (2 weeks ago) by Martin Nilsson <nilsson@opera.com>

Less code.
Zero size fragments are not allowed for handshake, alert and changecipherspec packets.

2014-08-05 16:24:32 (2 weeks ago) by Martin Nilsson <nilsson@opera.com>

Fail when uncompressed packet > 2^14 bytes
Unknown packet type is a fatal error.
We can just use Gz.compress and Gz.uncompress as we are not streaming.

2014-08-05 15:44:07 (2 weeks ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>

SSL.File: Fail read() on ALERT.

read() now fails with EIO if the peer has aborted the connection
with a fatal alert.

Also sets errno to EAGAIN in nonblocking read() if no data available
and not closed by peer.

Monday 04 August 2014

2014-08-04 19:16:55 (3 weeks ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>

SSL.File: Fail write() on ALERT.

write() now fails with EIO if the peer has aborted the connection
with a fatal alert.

2014-08-04 19:06:50 (3 weeks ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>

SSL.File: Improved backend robustness.

Don't bother running the backend if the peer has aborted the connection.

2014-08-04 17:24:46 (3 weeks ago) by Martin Nilsson <nilsson@opera.com>

Debug cleanup.

2014-08-04 16:07:40 (3 weeks ago) by Martin Nilsson <nilsson@opera.com>

Fixed time invariance issues when decoding the premaster secret.

2014-08-04 16:01:55 (3 weeks ago) by Martin Nilsson <nilsson@opera.com>

Stop creating RSA objects we don't use in RSA key exchange. Some code style changes.

Sunday 03 August 2014

2014-08-03 17:18:17 (3 weeks ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>

Testsuite: Don't test so many SSL suites in threaded mode.

Testing just the basic set of suites should be sufficient in
threaded blocking mode (as long as the corresponding nonblocking
test tests all the suites).

2014-08-03 15:34:57 (3 weeks ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>

Testsuite: Keep better track of skipped SSL tests.

2014-08-03 12:21:12 (3 weeks ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>

SSL.File: Improved robustness of closed state.

Fixes remaining bug in threaded blocking mode testsuite.

2014-08-03 12:11:37 (3 weeks ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>

Testsuite: Test SSL.File in threaded blocking mode.

The main SSL.File testsuite now tests all suites in both
nonblocking callback mode and threaded blocking mode.

2014-08-03 12:03:07 (3 weeks ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>

SSL.File: Fixed potential hang in blocking read().

The remote close packet may already have been received,
in which case no read callback is installed anymore, and
the local backend would hang.

Also updates the documentation to mention that blocking
read and write in concurrent threads now is supported.

2014-08-03 10:40:26 (3 weeks ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>

Paranoia: Use guaranteed_memset() to CLEAR_ON_EXIT.

Saturday 02 August 2014

2014-08-02 23:45:44 (3 weeks ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>

Shuffler: Fixed typo in documentation.

2014-08-02 23:13:36 (3 weeks ago) by Martin Nilsson <nilsson@opera.com>

Redid make legal

2014-08-02 23:09:10 (3 weeks ago) by Martin Nilsson <nilsson@opera.com>

Updated from gnu.org

2014-08-02 10:40:38 (3 weeks ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>

Image: Fixed a few documentation typos.

Friday 01 August 2014

2014-08-01 09:00:22 (3 weeks ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>

SSL.File: Show the connection state in lfun::_sprintf(%O).

2014-08-01 08:54:05 (3 weeks ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>

SSL.File: Got rid of unused argument.

The called_from_real_backend arguemnt is no longer used, so there's
no need to keep it around and up to date.
SSL.Connection: Added lfun::_sprintf().

2014-08-01 01:02:29 (3 weeks ago) by Martin Nilsson <nilsson@opera.com>

Added standards cross references.

2014-08-01 00:11:41 (3 weeks ago) by Martin Nilsson <nilsson@opera.com>

We are typically only calling sign/verify once a connection, so just do the implementation selection during that call.

Thursday 31 July 2014

2014-07-31 21:00:41 (3 weeks ago) by Martin Nilsson <nilsson@opera.com>

Improved some comments.

2014-07-31 17:49:50 (3 weeks ago) by Per Hedbor <ph@opera.com>

Some tweaks to the overwiev Fuse documentation
Documentation tweaks for Shuffler

We should probably use this in at least Protocols.HTTP.Server, to test the code
if nothing else..

2014-07-31 17:27:55 (3 weeks ago) by Per Hedbor <ph@opera.com>

Aded GLUT absolutely minimal autodoc

This is generated automatically, but if GLUT is not installed
on the computer the generation is skipped.

Thus, also check in the generated file.

2014-07-31 17:06:08 (3 weeks ago) by Per Hedbor <ph@opera.com>

Added basic documentation to Image.WebP.

2014-07-31 16:06:29 (3 weeks ago) by Martin Nilsson <nilsson@opera.com>

Someone didn't test their changes.

2014-07-31 16:00:18 (3 weeks ago) by Martin Nilsson <nilsson@opera.com>

Make default signature hash more explicit.

2014-07-31 15:47:36 (3 weeks ago) by Per Hedbor <ph@opera.com>

Added a few notes about what an AVS file actually is.
Added a few notes about what PCX is.
Added a few notes about what ILBM is.
Added a few more format notes

Also removed some trailing whitespaces
Moved general format description from encode() to the module
Actually document Image.WBMP.

Perhaps a few years to late.
Documented the mission-critical Image.DSI module (Dream SNES image format)
Moved all _Image_JPEG documentation to Image.JPEG.
Fixed XPM documentation, it is now visible

Also constified a constant and removed a comment.
Moved _Regexp_PCRE documentation to Regexp.PCRE.

Also mark up code segments in the documentation with @code.

2014-07-31 11:59:30 (3 weeks ago) by Martin Nilsson <nilsson@opera.com>

Moved hash selection to the signer object.

2014-07-31 09:47:27 (3 weeks ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>

SSL.File: Removed some obsolete debug checks.

The current Pike backends support multiple concurrent threads running
the backend, so there's no purpose in these thread checks anymore.

2014-07-31 09:42:23 (3 weeks ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>

SSL.File: Removed some dead code.

2014-07-31 09:36:55 (3 weeks ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>

SSL.File: Stricter type for backend_once().

Wednesday 30 July 2014

2014-07-30 08:24:07 (3 weeks ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>

SSL.File: Removed some now ignored arguments.

The two last arguments to RUN_MAYBE_BLOCKING() are no longer used,
so there's no point in having them.

2014-07-30 08:21:23 (3 weeks ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>

SSL.File: Changed backend handling.

The backend to use (real/local) now strictly depends on blocking/
nonblocking mode. This means that creation of the local backend
can be (and has been) moved to set_blocking{,_keep_callbacks}().

This reduces the number of short-lived backends used by SSL in a
typical nonblocking backend-driven application down to ~ zero.

Tuesday 29 July 2014

2014-07-29 19:28:40 (3 weeks ago) by Per Hedbor <ph@opera.com>

More documentation for Image.XCF and Image.PSD.

2014-07-29 19:17:31 (3 weeks ago) by Martin Nilsson <nilsson@opera.com>

Decomplex the lookup function a bit.

2014-07-29 18:49:28 (3 weeks ago) by Martin Nilsson <nilsson@opera.com>

More static.

2014-07-29 18:29:50 (3 weeks ago) by Martin Nilsson <nilsson@opera.com>

filesystem isn't used.

2014-07-29 18:24:28 (3 weeks ago) by Martin Nilsson <nilsson@opera.com>

Synchronized port struct with socket.c

2014-07-29 18:16:45 (3 weeks ago) by Martin Nilsson <nilsson@opera.com>

Remove aap_malloc and aap_free

2014-07-29 17:55:59 (3 weeks ago) by Martin Nilsson <nilsson@opera.com>

Updated documentation for set_cipher_suite

2014-07-29 17:42:47 (3 weeks ago) by Per Hedbor <ph@opera.com>

Non-bignum support has been removed
Added some documentation to the Arg module

The rest of the documentation is now extracted as well.

2014-07-29 17:10:28 (3 weeks ago) by Per Hedbor <ph@opera.com>

Removed pike 7.5 (I think?) support and added some documentation.
Do not try to parse the received data as HTTP variables.

Fixes a crasher that occurs at times, and the parsing did not make
any sense anyway.
Removed prestate and supports from HTTPLoop.RequestObject

They were never exactly part of any standard.

2014-07-29 16:13:00 (3 weeks ago) by Per Hedbor <ph@opera.com>

Add locking support to FUSE.

Also implement the nano-second version of utime.

2014-07-29 14:58:57 (3 weeks ago) by Per Hedbor <ph@opera.com>

Added nano-second resolution file-timestamp support to stat

2014-07-29 09:19:29 (3 weeks ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>

Documentation: Added some crossreferences for *.secure().

Monday 28 July 2014

2014-07-28 15:10:13 (4 weeks ago) by Per Hedbor <ph@opera.com>

Removed some redundant debug that debugs that pike can call functions correctly.
Added a few OBJECT_CLEAR_ON_EXIT clears.

Images, String.Buffer objects and Gmp.mpz objects now honor the flag
for not only the object structure, but also the data in the object.

2014-07-28 10:23:48 (4 weeks ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>

Gmp.mpz: Propagate CLEAR_ON_EXIT to bignums.

Creating a bignum from a String.secure()d string now causes
the bignum to be Object.secure()d.

Sunday 27 July 2014

2014-07-27 12:30:59 (4 weeks ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>

Object: Added secure().

This function sets the OBJECT_CLEAR_ON_EXIT flag on the provided
object (analogous to String.secure() and STRING_CLEAR_ON_EXIT).

Also fixes the documented type of String.secure().

2014-07-27 12:27:27 (4 weeks ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>

Runtime: Added flag to clear objects on free.

The PROGRAM_CLEAR_STORAGE flag now sets the new object flag
OBJECT_CLEAR_ON_EXIT (analogous to STRING_CLEAR_ON_EXIT) at
clone time.

2014-07-27 12:25:15 (4 weeks ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>

Runtime: Added flags field for objects.

Saturday 26 July 2014

2014-07-26 11:19:16 (4 weeks ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>

SSL.File: Removed some now dead code.

2014-07-26 06:09:04 (4 weeks ago) by Martin Nilsson <nilsson@opera.com>

More internal documentation of rsa_pad.

2014-07-26 02:07:48 (4 weeks ago) by Martin Nilsson <nilsson@opera.com>

Optimized rsa_unpad a bit.

Friday 25 July 2014

2014-07-25 21:40:20 (4 weeks ago) by Martin Nilsson <nilsson@opera.com>

Improved RSA en/decrypt test a bit.
More serious attempt at constant time RSA unpadding.

2014-07-25 11:54:23 (4 weeks ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>

CHANGES: Updated the segments about Crypto and SSL.

Splitted the combined segment into one about SSL and one about
Crypto and Nettle changes.

Combined, reworded and extended several items.

Thursday 24 July 2014

2014-07-24 17:19:54 (4 weeks ago) by Per Hedbor <ph@opera.com>

Now compiles again.

Use TYPEOF to get type

(cherry picked from commit 9aac72417207bd7fce31a99530e18843150a7565)

2014-07-24 13:26:10 (4 weeks ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>

String: Added filter_non_unicode().

Make string_filter_non_unicode() available as String.filter_non_unicode().

Also fixes related typo in CHANGES.

2014-07-24 13:18:46 (4 weeks ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>

SSL.File: Revamped handling of errno.

Splits cb_errno into {read,write,close}_errno, which in turn are used to
update local_errno depending on which of {read,write,close,renegotiate}()
et al was called.

Removes the now obsolete FIX_ERRNOS() macro.

Also removes a direct call of close_callback() from ssl_close_callback().

Wednesday 23 July 2014

2014-07-23 23:27:51 (4 weeks ago) by Martin Nilsson <nilsson@opera.com>

On systems with RDRND random will not be deterministic or depend on random_seed().

2014-07-23 14:58:28 (4 weeks ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>

SSL.File: The got_extra_read_call_out state is no more.

The extra read call_out has been fully replaced by the
internal_poll() call_out, so remove the last remnants of it.

2014-07-23 12:13:55 (4 weeks ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>

SSL.File: update_internal_state() is no more.

As update_internal_state() has become a noop, there's no need
to keep it around anymore.

2014-07-23 12:00:22 (4 weeks ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>

SSL.File: Improved handling of user callbacks in set_backend().

Any pending callbacks now migrate to the new backend.

Also clears pending callbacks on shutdown().

Tuesday 22 July 2014

2014-07-22 15:07:57 (1 month ago) by Per Hedbor <ph@opera.com>

Fixed changelog URL in CHANGES
Strengtened the return type of glob()
Moved pike_get_interpreter_pointer to threads.c
Removed very redundant size_shift debug test

2014-07-22 14:52:18 (1 month ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>

SSL.File: Move read_callback setting to read().

The stream read_callback is now set (to ssl_read_callback) whenever
the read buffer isn't full, and cleared when it is.

This reduces the complexity and cleans up the semantics of where
and when the stream read_callback is changed.

Also makes similar changes to the handling of the stream close_callback.

This means that the function update_internal_state() is now a noop.

2014-07-22 13:49:41 (1 month ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>

Nettle.BufferedCipher: Fixed bug in unpad().

The new unpad() padding checker didn't survive the case where
the padding consisted of a single byte.

Monday 21 July 2014

2014-07-21 16:51:47 (1 month ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>

Nettle.BufferedCipher: Support larger padding in unpad().

Support padding larger than the cipher block size.

Support padding larger than 127 bytes on architectures with signed char.

The above are needed to interoperate with GnuTLS (which often uses quite
long padding).

Also attempts to make the padding checking code more time-invariant.

2014-07-21 16:50:40 (1 month ago) by Per Hedbor <ph@opera.com>

Moved random() note

2014-07-21 16:44:42 (1 month ago) by Per Hedbor <ph@opera.com>

Added notes about some more changes

2014-07-21 15:34:00 (1 month ago) by Tobias S. Josefowitz <tobij@tobij.de>

[Fuse] remove redundant code around call_with_interpreter()

Fixes compilation, and removes unneccessary code.

2014-07-21 15:01:44 (1 month ago) by Per Hedbor <ph@opera.com>

Merged the const-marked pike_interpreter_pointer branch.

We now lie to the compiler about the const:ness of the
Pike_interpreter_pointer variable.

Most code now pretends that that variable is constant (it's not,
really, it's constant /per thread/, but not globally, however, the
only code that writes to it and expects anything but the same value
each time it is read is in thread.c)

This saves a lot of code when using the stack multiple times in a
function, and should be safe enough, albeit somewhat unconventional.

If nothing else the binary size shrunk by about 5%.

This _will_ cause issues if pike is compiled with link-time
optimization. A better solution would be an actual thread local
pointer, which is const marked. Or, perhaps the best solution, having
the whole pike_interpreter_struct structure be thread local. At least
on x86_64 accessing thread-local data is just about as fast as
accessing global data.

2014-07-21 14:15:41 (1 month ago) by Per Hedbor <ph@opera.com>

Added change entry for the new syntax.

Sorry for the messed up commit message previously, it happened since
the character # starts a comment in commit messages.

2014-07-21 13:54:49 (1 month ago) by Per Hedbor <ph@opera.com>

Added a new string syntax

They will all start and end a literal string.

A literal string can contain any characters except the end sequence.

The main usecase is writing code in a string.

As an example:

string test = #{
This is a literal string.
They can contain any characters, no de-quoting is done at all.

So, as an example, foo "bar" 'gazonk' \

Valid quote sequences are #{, #( and #[.
They are ended by # followed by }, ) and ], respectively.

So, you can use the two other quotes inside the string, if you want to, like:

Also, no preprocessing is done inside the string.

The main usecase for these strings is to write code in code.

2014-07-21 11:48:04 (1 month ago) by Martin Karlgren <marty@roxen.com>

Support REQUEST_GETNEXT by allowing callback to return a different OID.

Previously, the API only supported returning the requested OID, which made
it impossible for the callback to return the "next" OID (the one actually
used in REQUEST_GETNEXT requests).

Sunday 20 July 2014

2014-07-20 13:10:31 (1 month ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>

SSL.File: Move write_callback setting to queue_write().

The stream write_callback is now set (to ssl_write_callback) whenever
the write_buffer isn't empty, and cleared when it is.

This reduces the complexity and cleans up the semantics of where
and when the stream write_callback is changed.
Testsuite: Make sure that there are valid certs for old TLS.

Old versions of TLS (before TLS 1.2) can't use SHA256 certs
for most suites as the suites use SHA1 (or even MD5) which
is too weak for SHA256 certs.

This problem was introduced by the GnuTLS interop fix.

2014-07-20 12:28:37 (1 month ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>

SSL.Session: Fixed some warnings.

Saturday 19 July 2014

2014-07-19 11:31:55 (1 month ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>

SSL.Session: Improve interoperation with GnuTLS.

GnuTLS doesn't like certificates for SHA256 signing being used with
suites (in TLS 1.1 and earlier) using SHA1. We now filter such certs.

Friday 18 July 2014

2014-07-18 17:27:07 (1 month ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>

SSL.File: Detach chaining of callbacks for read.

The user {accept,read,close}_callback():s are now no longer called
directly from the internal ssl_read_callback(), but instead via
internal_poll() (analogous to ssl_write_callback()).

This attempts at further reducing the code complexity of SSL.File.

Thursday 17 July 2014

2014-07-17 17:27:01 (1 month ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>

SSL.File: Detach chaining of callbacks for write.

Adds schedule_poll() and internal_poll().

The user {write,close}_callback():s are now no longer called directly
from the internal ssl_write_callback(), but instead via a call_out of
internal_poll() (scheduled by schedule_poll()).

This is a start at attempting to reduce the code complexity of SSL.File.

Wednesday 16 July 2014

2014-07-16 17:37:47 (1 month ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>

Backend: Fixed EXIT in CallOut.

EXIT in CallOut sometimes attempts to get the parent object (ie the backend)
by calling parent_storage(), but that requires destruct() to have registered
the program with a destroy_called_mark, which it only does for programs
lacking lfun::destroy() if they are

* C-programs (no problem here).

and

* Have the PROGRAM_NEEDS_PARENT flag set (this was missing).

This caused the error "Cannot access parent of destructed object.".

This bug could sometimes be triggered by the async_tls_close_test.

2014-07-16 17:15:25 (1 month ago) by Martin Nilsson <nilsson@opera.com>

Allow time to be set through ASN.1 UTC constructor

2014-07-16 15:46:26 (1 month ago) by Martin Nilsson <nilsson@opera.com>

Create a new struct object before cutting substrings, to prevent reading outside of the limit.
Comments and fixmes.

2014-07-16 15:24:10 (1 month ago) by Martin Nilsson <nilsson@opera.com>

Whitespace and debug fixes.

2014-07-16 14:57:30 (1 month ago) by Martin Nilsson <nilsson@opera.com>

Alerts messages are printed out when SSL3_DEBUG is enabled. Cut down the redundancy.

2014-07-16 14:41:43 (1 month ago) by Martin Nilsson <nilsson@opera.com>

certificate_request probably works. Did some work on sending client certificates.

2014-07-16 13:16:14 (1 month ago) by Martin Nilsson <nilsson@opera.com>

Since Session doesn't know about Context, do the CertificatePairs lookup in the caller to avoid ugly type casts.

2014-07-16 13:04:00 (1 month ago) by Martin Nilsson <nilsson@opera.com>

No SNI in Pike 7.8.

Tuesday 15 July 2014

2014-07-15 23:36:36 (1 month ago) by Martin Nilsson <nilsson@opera.com>

These didn't exists in 7.8, so no compat.

2014-07-15 23:33:56 (1 month ago) by Martin Nilsson <nilsson@opera.com>

Refactored certificate lookup.
Whitespace fix.

2014-07-15 17:53:23 (1 month ago) by Martin Nilsson <nilsson@opera.com>

OO harder. Let CertificatePair sort themselves according to perceived certificate strength.

2014-07-15 16:56:19 (1 month ago) by Martin Nilsson <nilsson@opera.com>

Moved and trimmed code to generate CipherPair glob array to separate function.
Moved and trimmed code to generate CipherPair glob array to separate function.

2014-07-15 16:52:20 (1 month ago) by Per Hedbor <ph@opera.com>

add_mem8_imm is used when not compiling with valgrind.

Re-introduced the function

2014-07-15 16:19:21 (1 month ago) by Martin Nilsson <nilsson@opera.com>

More certificate testing.

2014-07-15 15:09:00 (1 month ago) by Per Hedbor <ph@opera.com>

Added F_CALL_BUILTIN_N and F_APPLY_N.

This calls the constant in arg1 with arg2 arguments from the stack.

These opcodes are used if the number of arguments is known and bigger
than 1.

It is not really all that big an optimization, it only removes the
mark stack handling. And, in fact, due to the fact that it removes
some peep optimizations it might be somewhat slower when not using the
amd64 machine code (since, as an example, APPLY/ASSIGN_LOCAL/POP is no
longer an opcode that is used in this case).

However, when using the amd64 code the assign local + pop opcode is
higly optimized, so it's not an issue that it is not merged into the
apply opcode. It is in fact more of a feature.

For that reason the code in docode.c is currently conditional.
The only code generator using it is the amd64 one.

2014-07-15 14:36:51 (1 month ago) by Martin Nilsson <nilsson@opera.com>

Don't use debug_string anymore.
Added _sprintf to Real.

2014-07-15 12:58:48 (1 month ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>

Optimizer: Fixed bug in foreach with ranges.

The foreach range optimizer didn't handle negative start ranges,
which would cause foreach to index the array out of bounds.

Fixes [bug 7216].

2014-07-15 12:56:33 (1 month ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>

Optimizer: Fixed bug in foreach with ranges.

The foreach range optimizer didn't handle negative start ranges,
which would cause foreach to index the array out of bounds.

Fixes [bug 7216].

Monday 14 July 2014

2014-07-14 19:25:47 (1 month ago) by Martin Nilsson <nilsson@opera.com>

Added _encode/_decode

2014-07-14 19:04:00 (1 month ago) by Martin Nilsson <nilsson@opera.com>

Sort Context items into Global, Cryptography, Certificates/authentication and Sessions

2014-07-14 18:25:55 (1 month ago) by Martin Nilsson <nilsson@opera.com>

Merge labels with identical code.

2014-07-14 17:55:35 (1 month ago) by Martin Nilsson <nilsson@opera.com>

Remove duplicate rules.

2014-07-14 17:13:35 (1 month ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>

SSL.File: More clean-ups in write().

Reduces the code complexity in write() a bit further.

2014-07-14 16:29:37 (1 month ago) by Martin Nilsson <nilsson@opera.com>

Some certficate conformance fixes. RFC 5280 4.1.2.2

2014-07-14 16:13:29 (1 month ago) by Martin Nilsson <nilsson@opera.com>

Small update on Camellia

2014-07-14 15:45:45 (1 month ago) by Per Hedbor <ph@opera.com>

Allow the user to specify the starting indentation level to JSON.encode

2014-07-14 15:24:18 (1 month ago) by Martin Nilsson <nilsson@opera.com>

merge_array_without_order(2) isn't actually used.

2014-07-14 14:03:19 (1 month ago) by Martin Nilsson <nilsson@opera.com>

Kill NPN fully.

Sunday 13 July 2014

2014-07-13 22:39:54 (1 month ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>

SSL.ServerConnection: Fixed nextprotoneg handshake.

The padding wasn't validated, and the wrong value was returned from
handle_handshake().

NB: As this stuff belongs to an obsolete draft, which has been
superceeded by RFC 7301, we probably ought to remove it.

2014-07-13 12:26:02 (1 month ago) by Henrik Grubbström (Grubba) <grubba@grubba.org>

SSL.Connection: Added query_write_queue_size().

This provides an easy API to see whether it is meaningful to
call to_write().

[permalink]

Bugs mentioned

  1345RESOLVEDdefaults in search not usefull
  2000ASSIGNEDJAVA_HOME hangs while configuring Pike 7.2/7.3
  7216RESOLVEDOptimizer broken for some cases of foreach.
  7230RESOLVEDStdio.sendfile() fails with "Indexing the NULL value with \"call_out\".".
Bugs? Suggestions?