Commit graph

6498 commits

Author SHA1 Message Date
Daniel Kochmański
e010740f06 changelog: update 2016-07-28 18:30:33 +02:00
Daniel Kochmański
2062b8fce3 cosmetic: add c-local declarations 2016-07-28 18:21:20 +02:00
Daniel Kochmański
6930c315a6 Merge branch 'fix/stable-inline-sort-on-vectors' into 'develop'
New inline stable sort for vectors

This PR should improve on the current stable sorting of vectors, fixing issues such as #217 (bug) and #101 (performance).

Full disclosure: The merge sort algorithm was completely stolen from sbcl.

I'm sure the new version can be optimized, for example by inlining `stable-sort-merge-vectors`, and by treating simple-arrays differently.

But for now, it already has slightly better performance on the sequences that I tested with, for example running:

```common-lisp
(time (dotimes (x 50000)
	(defparameter *my-arr* 
		(make-array 9 :initial-contents
		(list
		  (cons 3 'a)
		  (cons 2 'b)
		  (cons 2 'c)
		  (cons 2 'd)
		  (cons 3 'e)
		  (cons 2 'f)
		  (cons 2 'g)
		  (cons 2 'h)
		  (cons 1 'i))))

	(stable-sort *my-arr* #'< :key #'car)))
```

gave me 0.34 sec in the old version, and 0.28sec in the new one (even with the overhead of the make-array call, which is the same for both). But most importantly, the new version leaves the array sorted, which fixes bug #217:

```common-lisp
> *my-arr*
#A(T (9) ((1 . I) (2 . B) (2 . C) (2 . D) (2 . F) (2 . G) (2 . H) (3 . A) (3 . E)))
```

while in the old-version:
```common-lisp
> *my-arr*
#A(T (9) ((3 . A) (2 . B) (2 . C) (2 . D) (3 . E) (2 . F) (2 . G) (2 . H) (1 . I)))
```

The example in #217 also works now, of course:
```common-lisp
> (let ((a (copy-seq "BCA")))
        (stable-sort a #'char<)
        a)

"ABC"
```

See merge request !28
2016-07-28 16:13:23 +00:00
Diogo Franco
8723d5f895 implement new inline stable sort for vectors, fixing avoiding the previous coercion to list and actually do it inline 2016-07-26 23:52:11 +01:00
Daniel Kochmański
000af1996d cosmetic: make Makefile behaviour more intelligible
Also fix ctags obsolete flag (-o -> -f) and correct some small things
in ecl.man.in. Closes #263.
2016-07-25 16:33:30 +02:00
Daniel Kochmański
302b9dd86f Merge branch 'develop' into 'develop'
Fixed VS2010/2015 build.

- Fix #213
- Commit 10bd3b61 removed dffi code. Reflect that on nmake build.

See merge request !27
2016-07-21 09:04:46 +00:00
Fabrizio Fabbri
8fed1fa97d Fixed VS2010/2015 build.
- Fix #213
- Commit 10bd3b61 removed dffi code. Reflect that on nmake build.
2016-07-21 04:45:28 -04:00
Daniel Kochmański
b889b02a2b Merge branch 'fix-profiler-module' into 'develop'
Fix profiler module

This handles Issue #163.

Removes the problematic list case, and ignores any argument that is not a symbol or string.

Example of new behaviour:
```common-lisp
> (profile:profile 'defined-function)
;;; Warning: ignoring invalid argument to PROFILE: 'DEFINED-FUNCTION

> (profile:profile undefined-function 'defined-function defined-function)
;;; Warning: ignoring undefined function UNDEFINED-FUNCTION
;;; Warning: ignoring invalid argument: 'DEFINED-FUNCTION

> (profile:profile) ; list profiled functions
(DEFINED-FUNCTION)
```

See merge request !26
2016-07-20 11:19:23 +00:00
Diogo Franco
54a614bf34 do not warn about the PROFILE function, because this is also used in UNPROFILE 2016-07-20 11:54:06 +01:00
Diogo Franco
60a864ce3b delete broken list case in profile module. warn and ignore invalid names. 2016-07-20 11:38:43 +01:00
Daniel Kochmański
cd84200762 Merge branch 'develop' into 'develop'
fix minor typo in pprint error message

Minor fix to an error message I got when trying to change a read-only pprint dispatch table.

See merge request !25
2016-07-06 13:33:13 +00:00
Diogo Franco
6db5c3b672 fix minor typo in pprint error message 2016-07-06 11:17:24 +01:00
Daniel Kochmański
1636b6110f print-object: add default t-specialized printer
Fixes #193.
2016-07-03 17:05:36 +02:00
Daniel Kochmański
f66dd64e6f tests: add regression test for *trace-output* 2016-06-21 17:20:41 +02:00
Daniel Kochmański
f54b0d9c78 trace: print to *trace-output*
Fixes #236.
2016-06-21 16:57:44 +02:00
Daniel Kochmański
f1857e0ed5 cmp: defcallback: accept ':default' calling convention
Fixes #244.
2016-06-21 15:20:34 +02:00
Daniel Kochmański
f00fa4159b man: remove unnecessary info 2016-06-21 14:27:27 +02:00
Daniel Kochmański
4c56f3bbdd Merge branch 'man-page-cleanup' into 'develop'
Improve man and help.

Sorry that it took so long.

I reorganized man page, so that now it tells truth about current flags. Also updated information about the authors.
Same for help prompt(--help).
Also, added some of these changes to changelog. I(my emacs)'ve been willing enough that I(my emacs) removed trailing whitespace. If you find that inappropriate, please let me know.

There is one thing that should be somehow fixed - we should have release.sh script(or something like that), that'd prepare a new build of ECL for release,
and change the date that's shown in man(or do we have that already?) - I've currently set it to 10.05.16 (dd/mm/yy).

See merge request !22
2016-06-21 12:18:49 +00:00
Daniel Kochmański
77dec0b96b new-doc: iteration 2016-06-18 21:14:04 +02:00
MatthewRock
b037f37d30 Another minor fixes in MAN. 2016-06-18 18:39:26 +02:00
Daniel Kochmański
bb57174de0 new-doc: use css, add info 2016-06-18 17:00:02 +02:00
Daniel Kochmański
4553d5b351 new-doc: update new-doc 2016-06-18 16:47:13 +02:00
MatthewRock
8cdadf02ad Minor fixes in MAN, update timestamp 2016-06-18 15:05:06 +02:00
MatthewRock
895297634e Minor fixes in MAN, update timestamp 2016-06-18 14:11:21 +02:00
MatthewRock
1caef56e2c Merge branch 'develop' of gitlab.com:embeddable-common-lisp/ecl into develop 2016-06-11 16:26:24 +02:00
Daniel Kochmański
9a17eb6ffd Merge branch 'develop' into 'develop'
Develop



See merge request !24
2016-05-31 12:22:14 +00:00
Fabrizio Fabbri
8ba88efb61 Build svr4 like shared object on AIX. 2016-05-31 08:09:47 -04:00
Fabrizio Fabbri
5b383d3ff5 env->cs_limit error. (Fix #57)
* Ensure that operation are performed in the correct order.
2016-05-31 08:01:58 -04:00
Daniel Kochmański
d948bd69fe Merge branch 'develop' into 'develop'
Support for aix on 32 and 64 bit.

* add UNIX as *features* on aix to build asdf.
* configure thread and runlime linking.
* generalize print_lock macro as xlC complain on variadic
  macro arguments number.

See merge request !23
2016-05-30 10:42:40 +00:00
Fabrizio Fabbri
311f34a2d6 Support for aix on 32 and 64 bit.
* add UNIX as *features* on aix to build asdf.
* configure thread and runlime linking.
* generalize print_lock macro as xlC complain on variadic
  macro arguments number.
2016-05-30 06:32:41 -04:00
Daniel Kochmański
545dac9c2f Merge branch 'fix-autotools-netbsd' into develop
Fixes #252.
2016-05-30 11:18:00 +02:00
Daniel Kochmański
da59fc8081 configure: longdouble: check more libm functions
On armv7hf NetBSD libm doesn't provide ldexpl frexpl functions while
provides sinl cosl tanl logl and expl apparently. To sanitize the
autodetection of long double we need to add them to the list.
2016-05-30 10:01:55 +02:00
Daniel Kochmański
8406e1e4fc signal: fix the problem with restart-case and signal
Fixes #247.
2016-05-29 14:17:37 +02:00
Daniel Kochmański
e8234eca4f tests: add regression test for bug #247 2016-05-28 21:11:53 +02:00
Daniel Kochmański
c30dec1880 doc: fix handler_case example
REvelant to #248
2016-05-28 20:30:39 +02:00
Daniel Kochmański
171eaba8d7 doc: fix mistake with construct name 2016-05-27 15:23:09 +02:00
Daniel Kochmański
17a1510d18 stacks.h: fix bug with ECL_HANDLER/RESTART_CASE
Fixes #248. Identified and fixed by Vadim Penzin.
2016-05-27 15:18:00 +02:00
Daniel Kochmański
fd09021480 testing: fix bug in the testing framework 2016-05-27 15:15:28 +02:00
Daniel Kochmański
762c0ddad3 tests: add regression test for #248 2016-05-27 14:47:38 +02:00
MatthewRock
26ccd778bf Merge remote-tracking branch 'ecl/develop' into develop 2016-05-26 12:59:53 +02:00
Daniel Kochmański
5beac683c1 tests: ftype: add info that it's fixed 2016-05-25 12:20:40 +02:00
Daniel Kochmański
d76d7acedf changelog: add typep improvement 2016-05-25 09:24:51 +02:00
Daniel Kochmański
ea9f7f105c cc: configure: add android cc hack comment 2016-05-25 08:54:10 +02:00
Daniel Kochmański
672ded2dc6 typep: handle * type
This is the same as T according to '2.4.3 Type Specifiers' in the
spec. Fixes #240.

"If a type specifier is a list, the car of the list is a symbol,
and the rest of the list is subsidiary type information. Such a type
specifier is called a compound type specifier. Except as explicitly
stated otherwise, the subsidiary items can be unspecified. The
unspecified subsidiary items are indicated by writing *. For example, to
completely specify a vector, the type of the elements and the length of
the vector must be present."
2016-05-25 08:47:55 +02:00
Daniel Kochmański
4fcf48926b INSTALL: add darwin notes
Add troubleshoting for Darwin (nm and gcc). Fixes #245.
2016-05-24 21:15:41 +02:00
Daniel Kochmański
f288f8b077 new-doc: disable not finished parts (breaks) 2016-05-23 14:53:56 +02:00
Daniel Kochmański
f5fdb7e464 doc: new-doc progress 2016-05-21 17:33:50 +02:00
Daniel Kochmański
821a9fe4a3 all-hierarchy: add DGCL 2016-05-21 17:33:50 +02:00
MatthewRock
cc084acda2 Improve man and help. 2016-05-20 14:20:13 +02:00
Daniel Kochmański
2e43f8cf03 android: fix builds 2016-05-16 09:22:42 +02:00