text:
Masahiro Chef's Knife
- Summary
Widely considered to be one of the three most presitigious knife makers in all of Japan, the Masahiro Company creates knives with professional-level performance in mind. Each blade is crafted of Masahiro's proprietary steel, which undergoes a multi-stage process of quenching, sub-zero treating and tempering to achieve the optimum balance of strength and flexibility. The blade is ground asymmetrically, allowing for a thinner cutting edge and unmatched sharpness.
- The chef's knife is one of the most used knives in the kitchen and is perfect for chopping, slicing and mincing.
- Blade is made of Masahiro's proprietary MBS-26 high-carbon steel with a Rockwell rating of 59 HRC, representing the ideal mix of hardness and flexibility for a kitchen knife.
- Edge is ground at 80% on the right and 20% on the left to allow for a thinner, sharper edge than standard symmetrically ground blades.
- Mirror-polished by hand for a beautiful finish.
- Full-tang construction adds balance and control.
- Lightweight yet durable resin handle is hygienic and moisture resistant.
- 8" chef's knife: 8"-long blade; 4 3/4"-long handle; 5 1/4 oz.
- 10" chef's knife: 10"-long blade; 5"-long handle; 6 1/2 oz.
- Handcrafted in Japan.
- Use & Care
- Always use caution when handling sharp objects.
- Avoid cutting on hard surfaces such as stone, metal or glass.
- It is not advisable to use any knife but a meat cleaver to cut through bone or frozen food, as the blade can be easily damaged.
- Chopping in an up and down motion will dull the blade over time. Slice through foods with a forward and backward motion to prolong the blade's sharpness.
- Hand-wash with warm water and a mild detergent; rinse and dry immediately.
- Avoid cleaners containing bleach.
- Sharpen your knife at home using a whetstone or ceramic stone, or have it sharpened by a professional.
- Store knife in a safe place to protect its edge and prevent injury.
- Shipping
Shipping Information
This item is shipped from our warehouse by UPS to arrive within five business days of our receiving your order.
Shipping Rates
The shipping rate varies depending on your order total and shipping destination. View Shipping Options and Charges.
Rush Delivery
For an additional charge of $15 per address, we can rush delivery to most destinations. This service is not available for some oversize items, items shipped directly from the supplier (including perishable and custom-manufactured items), out-of-stock items and items to be shipped outside the contiguous 48 states.
Return Policy
At Williams-Sonoma, we take great pride in the quality and craftsmanship of our products. If, within 30 days, you are not completely satisfied with your purchase for any reason, please return the item for an exchange or refund of the merchandise value. View Full Return Policy.


text:
Online law enforcement degrees equip students with skills in leading police teams, developing law enforcement strategies tailored for different communities, and conducting thorough police investigations. While the majority of course work is delivered online, students may be asked to complete field work that allows them to gain hands-on skills in policing, depending on the program.
Assignments in a law enforcement program might include devising a strategy for addressing drug problems in a certain neighborhood, or coming up with solutions for a crisis situation while on the job. Course work covers topics in crisis communication and management, writing criminal reports, ethical issues in law enforcement, contemporary policing strategies, and crime pattern analysis.
Online law enforcement degree programs feature much of the same course work as a general criminal justice degree, and course work may encompass corrections, the courts, juvenile delinquency, and criminal justice research. However, the core of the program will focus on the distinctive role of state, local, and federal law enforcement in America's criminal justice system.
Students who graduate from law enforcement programs may go on to become police and detectives, which might include police field supervisors, sheriff's deputies, highway patrol, state troopers, or U.S. Marshals and their deputies. With relevant experience and education, other options might be available with the U.S. Border Patrol, U.S. Department of Homeland Security, Federal Bureau of Investigation, or Central Intelligence Agency. Local law enforcement roles might include drug enforcement, canine unit, SWAT team, cyber crime unit, domestic violence unit, and more.

subset: commoncrawl


text:
$98 for Pure Sterling Silver Heart Pedant Necklace with 1/4ctw Genuine Diamonds - Shipping Included ($500 Value)
Retail : $500.00 | You Save 80%
Limited Time Offer!
More Great Deals From Shirin Diamond Center
Expires 1 months from date purchased
Limit 5 per customer, may purchase 5 additional as gifts. This voucher has no cash value. Cannot be combined with other offers. Total voucher value must be used in 1 order. Shipping included. Valid for US Residents only. Product will be automatically shipped to address entered at checkout within 2-4 weeks of purchase. No voucher redemption is necessary.


text:
Scranton >Automotive Sales & Services > Pep Boys Auto Parts & Service
1113 Us-Rt. 6, Scranton-Carbondale Hwy, Scranton, PA | Directions 1850841.46908 -75.644453
M-F 8am-9pm, Sa 8am-8pm, Su 9am-6pm
Neighborhoods: Yatesville
Editorial Review by Citysearch Editors – Offers everything from shocks to XM radios. Auto service includes engine tune-up, wheel alignment and brake maintenance.
Sign in with Facebook Sign in with Facebook to see what your friends are up to!
Do you have a review of Pep Boys Auto Parts & Service on your blog? If you include the Citysearch image link (shown below) in your post, we'll automatically link to your review from the business profile page. Here's how our Linkback system works:
The Linkback system is free and automatic. It's really that easy.
To link to our business profile page, copy the html below to your web page.


text:
Write a tea journal, see what others are drinking and get recommendations from people you trust. Sign Up or Learn More
I've recently become more of a tea fan. My favourites are flavoured masala chai and rooibos blends.
70- 74: it's okay
75- 80: like
81- 88: really like
89 and above: favourite
Beach, California


text:
April 28, 2013 – Travis Tour Dates 2013 Travis is a band that has seen considerable success in their native United Kingdom. Hailing from Glasgow, the band has released six studio albums over the course of th … read more →
Stereophonics Tickets
Sorry! Looks like there aren't any events.
But it's not the end of the world! Click Track above and you'll be the first to know when Stereophonics tickets are available.
Or take a look at these other events we think you'll like instead:
Aug 12, 2014, Seattle, WA
Arctic Monkeys
Aug 11, 2014, Seattle, WA
Arctic Monkeys
Jun 24, 2014, Redmond, WA
Gavin DeGraw with Matt Nathans...
May 25, 2014, Seattle, WA
Christina Perri
Jul 19, 2014, Woodinville, WA
Goo Goo Dolls with Daughtry
Jun 28, 2014, Woodinville, WA
John Legend
May 24, 2014, Seattle, WA
Christina Perri with Birdy
May 23, 2014, Tacoma, WA
Aloe Blacc
May 10, 2014, Seattle, WA
Childish Gambino
Stereophonics Ticket Prices
Past 12 Months
Cheapest Stereophonics Shows of All Time
Stereophonics with The Wind + The Wave Saint Andrews Hall — Detroit , MI
Stereophonics with The Wind + The Wave Terminal 5 — New York , NY
Stereophonics with The Wind + The Wave Theatre of Living Arts — Philadelphia , PA
Stereophonics with The Wind + The Wave Wonder Ballroom — Portland , OR
Stereophonics with The Wind + The Wave The Showbox — Seattle , WA
Most Expensive Stereophonics Shows of All Time
V Festival (Weekend Pass) with Kings of Leon, Beyonce, Jason Mraz Hylands Park — Chelmsford , London
V Festival (Saturday Pass) with Kings of Leon, Beyonce, Jason Mraz Hylands Park — Chelmsford , London
V Festival (Saturday Pass) with Kings of Leon, Beyonce, Jason Mraz Weston Park — Telford , Tfw
V Festival (Sunday Pass) with Kings of Leon, Jason Mraz, Stereophonics Hylands Park — Chelmsford , London
Stereophonics with The Wind + The Wave Commodore Ballroom — Vancouver , BC
Stereophonics Ticket Prices Overview
Cheapest Stereophonics Tickets
Most Expensive Stereophonics Tickets
Past Tour Dates for Stereophonics
Stereophonics Tour Dates 2013
date city state venue 11/28/2013 London O2 Arena - London 11/26/2013 Cardiff Cardiff Motorpoint Arena Cardiff 11/25/2013 Cardiff Cardiff Motorpoint Arena Cardiff 11/24/2013 Cardiff Cardiff Motorpoint Arena Cardiff 11/22/2013 Bournemouth Bmh Bournemouth International Centre 11/21/2013 Brighton Bnh Brighton Centre 11/19/2013 Birmingham Warwickshire LG Arena 11/18/2013 Nottingham Nottinghamshire Capital FM Arena Nottingham 11/16/2013 Newcastle Upon Tyne T & W Metro Radio Arena 11/15/2013 Leeds W York First Direct Arena 11/14/2013 Manchester Lancashire Manchester Arena 11/12/2013 Dublin D The O2 - Dublin 11/11/2013 Belfast Ant Odyssey Arena 11/09/2013 Aberdeen Aberdeenshire AECC 11/08/2013 Glasgow Glg The Hydro 11/07/2013 Glasgow Glg The Hydro 10/12/2013 Mexico City ?? Autodromo Hermanos Rodriguez 10/10/2013 Los Angeles CA Henry Fonda Theatre 10/08/2013 San Francisco CA The Fillmore 10/06/2013 Vancouver BC Commodore Ballroom 10/05/2013 Portland OR Wonder Ballroom 10/04/2013 Seattle WA The Showbox 10/01/2013 Denver CO Bluebird Theater 09/29/2013 Minneapolis MN Mill City Nights 09/28/2013 Chicago IL Vic Theatre 09/27/2013 Detroit MI Saint Andrews Hall 09/25/2013 Toronto ON The Danforth Music Hall 09/24/2013 Montreal QC Corona Theatre 09/22/2013 Washington DC 9:30 Club 09/21/2013 New York NY Terminal 5 09/20/2013 Boston MA House of Blues Boston 09/19/2013 Philadelphia PA Theatre of Living Arts 08/18/2013 Chelmsford London Hylands Park 08/17/2013 Chelmsford London Hylands Park 08/17/2013 Telford Tfw Weston Park 08/17/2013 Chelmsford London Hylands Park 08/12/2013 Tokyo Liquid Room 07/25/2013 Perth Western Australia Metro City 07/23/2013 Melbourne Vic Palace Theatre 07/21/2013 Melbourne Vic Palace Theatre 07/18/2013 Newtown ?? Enmore Theatre 07/12/2013 Kinross ?? Balado Airfield 07/04/2013 Luxembourg L Den Atelier 06/14/2013 Landgraaf Lim Megaland 03/27/2013 Edinburgh Edinburgh Usher Hall 03/26/2013 Blackpool Lancashire Empress Ballroom 03/25/2013 Doncaster South Yorkshire Doncaster Dome 03/23/2013 Plymouth Devon Plymouth Pavilions 03/22/2013 Portsmouth Hampshire Portsmouth Guildhall 03/21/2013 Cheltenham Gls Cheltenham Racecourse 03/19/2013 Westcliff-On-Sea Ess Southend Cliffs Pavilion 03/18/2013 Leeds Yorkshire O2 Academy Leeds 03/16/2013 Wolverhampton West Midlands Wolverhampton Civic Hall 03/15/2013 Leicester Leicestershire De Montfort Hall 03/09/2013 Dublin D Olympia Theatre 03/07/2013 Belfast Bfs Waterfront Hall 03/04/2013 London Lbh Electric Brixton
Stereophonics Tour Dates 2012
date city state venue 12/20/2012 London London Troxy 12/19/2012 Birmingham W Mids O2 Academy Birmingham 12/17/2012 Glasgow Glg O2 Academy Glasgow 12/16/2012 Manchester Lancashire Manchester Academy 12/15/2012 Newport Nwp Newport Centre 09/15/2012 Milwaukee WI Lo-cash Live 07/23/2012 Derby Dby Assembly Rooms


text:
Show me
- Sports & Fitness
- Fitness Equipment
- Exercise Mats(10)
Refine by
- Exercise Mats (8)
- Towels (1)
- Mats (1)
- Sport Supply (2)
- Body Solid (1)
- Stamina (1)
- ProForm® (1)
- Norsk (1)
- Healthrider (1)
- More...
10 items from $0 to $100$0 $100
Exercise Mats
- Most Relevant
- Brand A-Z
- Brand Z-A
- Member Rating High to Low
- Member Rating Low to High
- Price Low to High
- Price High to Low
- Top Selling
Util-A-Mat Commercial Grade Reversible Floor Mats - 24" x 24" - 8 TilesItem #: 792076 |Model #: 24806CGSC+ More details
$5 Shipping
- Safety/anti-fatigue mats have multiple uses
- Can be used indoors or outdoors
- Lightweight, easy to assemble and easy to clean
- Each pack covers 33.5 sq. ft.
- Color(s): Gray and Multi-Color (reversible)
Body Solid Tools 4 Piece Puzzle Mat Set - BlackItem #: 767659 |Model #: RF4PMB+ More details
No weight is too heavy for this is the heavy duty, interlocking rubber flooring system!
Treadmat RF36T Rubber Treadmill Mat - 78" x 36"Item #: 302403 |Model #: RF36T+ More details
Treadmat is perfect for treadmills, ski exercisers or as a general aerobics mat.
Expando Folding Exercise Mat - BlueItem #: 241113 |Model #: 1064870+ More details
Mat folds into three sections for easy handling and storage.
Healthrider Floor MatItem #: 496911 |Model #: HRMC1098+ More details
Superior protection beneath treadmills, bikes, weight benches, steppers and more.
All-Purpose Exercise Mat - BlueItem #: 241099 |Model #: 1041606+ More details
Our extremely popular polyfoam-filled exercise mats are ideally suited for a multitude of uses.
Clear Equipment MatItem #: 496880 |Model #: MISC0404+ More details
Put a layer of protection between your workout and your floors.
Pro Performance 2-Piece Towel SetItem #: 81729 |Model #: 906+ More details
- (1) All purpose towel
- (1) gym towel
Set includes:
Available colors to choose: White, Gray, Pink, Teal, Cobalt, Purple
Ribbed Multi Purpose Fitness/Rehab MatItem #: 955009 |Model #: 1022391+ More details
The Ribbed Mat is ideal for virtually any individual fitness or rehabilitation activity.
Stamina AeroPilates Equipment MatItem #: 398897 |Model #: 05-0035+ More details
The AeroPilates Equipment Mat helps protect flooring, extend product life and dampen sounds.
Exercising on Fitness Mats
Exercise mats can be a great way to start an exercise regimen at home. When you're first beginning integrating regular workouts into your routine, you might not want to start with heavy weights or complex equipment. You can always add these down the road once your body is more conditioned. If your exercise requirements run to simple, low impact workouts, such as yoga or Tai Chi, the right exercise mat can be just what you need.
Exercise Mats
Whether you're looking for the right mats for gymnastics, yoga, floor exercises, or even to protect your floor from treadmills or ski machines, you'll find it at Sam's Club, at an affordable price and available with the convenience of having the mats shipped directly to your residence. You can find a folding gymnastics mat which is especially great for kids first learning basic gymnastics skills, multi-purpose foam mats in a variety of colors, even eco-friendly yoga mats with basic yoga positions printed right on the mat. If you've been waiting for an excuse to start your regular exercise routine, now you have it.
Find the right mats for you and Sam's Club and get started on creating that happier, healthier you that you deserve.


text:
Was: $49.99
Lowest Price Guarantee
- Model Number: CA5P
- Fit: Contoured
- Sizing Guidelines:
Size / Waist (circumference)
Jr. Sm / 22" - 24"
Jr. Md / 24" - 26"
Jr. Lg / 26" - 28"
- Construction:
- Lithium Science pant construction
- Lightweight ventilated flex body fabric
- Polyester jersey mesh
- Extra large Lycra gusset
- Provides up to 16 way stretch
- Maximum mobility
- Waist:
- SFS - Sure-Fit belt system
- Quick pull dual-sided waist adjustment with velcro
- Flex Back waistband
- Allows the pants to stay snug when you move
- Knee:
- Abrasion-resistant 1680D nylon knee panel
- Breathable mesh on the back
- Graphics:
- Fully sublimated graphics
- Won't rub or peel off
Comments: Two major problems with these pants:
1) Sizing is way off: they look like they are made for toddlers. Junior Small waist is about 18", and length (waist to hem) is 27".
2) Tag says, "Hand wash. Do not machine wash." Is there anyone out there who HAND WASHES hockey gear?!
Sending these back!
From: Rebecca, NJ
Other Items to Consider
Alkali Roller Hockey Pants Junior
The Alkali RPD Max Roller Hockey Pants are the premier model in the Alkali Pant Line. The RPD Max features a Platinum-Flex Body Fabric that allows full leg extension without being hindered, it provides excellent air flow keeping players cool during a game and is very durable. The knee panels feature two-layers of high quality ballistic nylon so it can dissipate friction and cause less wear and tear on the pant. The unique and stylish graphics on the RPD Max are fully sublimated for a great look but more importantly for excellent durability because they will not peel off like traditional screen printing.Colors: 4
The Alkali RPD Team Roller Hockey Pants feature a well ventilated 4-way stretch material that offers much needed air flow for those hot roller hockey games. This material does not sacrifice durability for ventilation like some other pants on the market. The graphics are fully sublimated from top to bottom while the knees panels are dual-layered with high grade ballistic nylons. Comfort is provided by the Flex Back waistband that conforms to a player's body with their every movement while the Sure-Fit II Belt System makes getting these pants on and off as easy as can be.Colors: 5
The Alkali RPD Comp Roller Hockey Pants are constructed of a jersey-like material that offers solid breathability and durability. The RPD Comp pants come with dual-layered ballistic knee panels that help to reduce friction during a fall and therefor extend the life of the pant. The graphics throughout the pant are fully sublimated, not just for the cool look it gives the pants but more importantly it is much more durable than traditional screen printed graphics. The Sure-Fit II Belt System makes putting on and taking off these pants simple and easy, a quick tug on the nylon straps will securely tighten them while a quick flick of the buckle will fully loosen the belt.Colors: 5
The Alkali RPD Lite Roller Hockey Pants are the entry level model in the Alkali Pant Line. The RPD Lite features heavy duty 1680 denier ballistic nylon knee inserts to offer top notch durability for tough falls. The large crotch gusset is made of a 16 way stretch material to offer good mobility on those long strides. The Sure-Fit II Belt System makes this pant a breeze to get on and off while the Flex Back Waistband adds another level of comfort because it expands and contracts with a players waist as they're skating.Colors: 2
The Alkali CA7 roller hockey pants are another great pant from Alkali Hockey. Featuring a lot of the same attributes of the premier CA9 pant, the CA7's differs because they feature a lighter weight body fabric with excellent flex and ventilation. The pant also features an extra large Lycra gusset for maximum mobility and dual layer 1680d knee patches for extra durability.Colors: 1
The Alkali CA5 roller hockey pants are a great intermediate level pant with lots of high end features. The CA5 is constructed from ventilated flex body fabric that has a jersey-like mesh feel to keep you cool and allow for maximum movement. The Sure-Fit belt system combined with the Flex Back waistband will keep your pants up and snug but allow you to move for maximum stride and the tough nylon knee panels add durability.Colors: 2


text:
John Adams Bust
Sale Price: $83.95
To Order by Phone Call 1-800-933-6249
John Adams was an early leader in the American Revolution, starting with his opposition to the Stamp Act. Eventually, Adams emerged as a leader of the faction of the Continental Congress that advocated independence from Great Brittain. Many years later, the author of the Declaration of Independence, Thomas Jefferson, called Adams "the pillar of [the Declaration's] support on the floor of Congress, its ablest advocate and defender against the multifarious assaults it encountered."
To preserve the statue, handle it as you would any art object. Clean with a soft, dry cloth.
Size: 8"


text:
Parent Directory | Revision Log
|Links to HEAD:
|(view) (annotate)
|Sticky Tag:
* swank-sbcl.lisp (swank-compile-string): Load the fasl file even if there were warnings. Just like the other backends do.
* swank-sbcl.lisp (swank-compile-string): Fix last commit. Honor *trap-load-time-warnings* but without calling LOAD inside WITH-COMPILATION-UNIT.
* swank-sbcl.lisp (swank-compile-string): Don't call LOAD inside WITH-COMPILATION-UNIT.
* swank-backend.lisp (type-specifier-p): New. Implement it for ACL, ECL, CCL, Clisp, SBCL, LW. * contrib/swank-util.lisp (symbol-classification-string): Use type-specifier-p.
* swank-sbcl.lisp (frame-package): New.
* swank-sbcl.lisp (frame-debug-vars): Only include :valid locals. (*keep-non-valid-locals*): New.
* swank-backend.lisp (deinit-log-output): Move from swank-sbcl, use it on CCL in ccl:*save-exit-functions* as well.
* clean up: (signal (make-condition ...)) => (signal ...)
* swank-sbcl.lisp (call-with-debugging-environment): Use sb-debug::resolve-stack-top-hint instead of just sb-debug:*stack-top-hint*, because now it can contain things other than just frames.
* swank-sbcl.lisp (stream-force-output): Undo last few changes.
* swank-sbcl.lisp (stream-force-output): Use with-world-lock i.e. with-recursive-lock instead of with-mutex. * slime.el (sbcl-world-lock): New test.
* swank-sbcl.lisp (stream-force-output): Don't use with-deadline. Grab the world-lock instead. (condition-timed-wait): Use the :timeout argument.
* swank-backend.lisp (call-with-io-timeout): Not used. Deleted. * swank-sbcl.lisp (call-with-io-timeout): Deleted.
* swank-sbcl.lisp (condition-timed-wait): Undo previous change. The :timeout arg doesn't seem ready for production use.
* swank-sbcl.lisp (condition-timed-wait): Use the :timeout argument of sb-thread:condition-wait if supported.
* swank-sbcl.lisp (with-definition-source): Forgot to commit this one.
sbcl: remove MERGE-TAIL-CALLS proclamation
Remove debugging code.
Simplify :buffer-and-file handling.
* slime.el (slime-goto-source-location): Allow for :buffer-and-file locations, prefer buffer if the buffer exists. * swank-sbcl.lisp (definition-source-for-emacs): Send :buffer-and-file when both are available. (quit-lisp): Use sb-ext:exit when it's present.
* swank-sbcl.lisp (quit-lisp): Use sb-ext:exit when it's present.
* swank-sbcl.lisp (definition-source-for-emacs): Prefer :file over :buffer, because the buffer can be killed in the mean time and the silly "No buffer named x.lisp" would be displayed.
sbcl: fix lisp-source-location
sbcl: workaround for auto-flush thread deadlocks, take II Occasionally auto-flush thread could deadlock with a thread doing compilation: T1: grabs world-lock T2: decides to flush, grabs stream lock T1: needs to do output (compiler note, etc), waits on the stream lock T2: needs the world-lock for a while (PCL dispatch machinery setup, etc) *boink* This is an SBCL issue, no mistake about it -- but sorting out the world-lock handling is going to take a while, and sticking a deadline around the FINISH-OUTPUT call avoids the issue. In this iteration the change is limited to swank-sbcl.lisp, making it hopefully non-intrusive enough to stay in.
sbcl: SWANK-VALUE to make it nicer to refer to values of SWANK symbols
Even more long line breaking.
sbcl: fix bug introduced two commits ago SWANK package not there yet when swank-sbcl.lisp is loaded.
sbcl: make STEP friendlier when SBCL gives the source form for the initial form ...right now it doesn't but next week it will -- and then the initial form shown would be useless.
* swank-sbcl.lisp (swank-compile-string): Use utf8.
Fix SBCL backend for Windows. * swank-sbcl.lisp (fd-stream-input-buffer-empty-p): Restore it.
Add a "sentinel thread" to protect access to global lists. * swank.lisp (start-sentinel, sentinel, send-to-sentinel) (sentinel-serve, sentinel-stop-server, sentinel-maybe-exit): New. (make-connection, close-connection, setup-server, stop-server): Use the sentinel. (close-connection%): Factored out. * swank-backend.lisp (register-thread, find-registered): New. * swank-allegro.lisp: Implement it. * swank-ccl.lisp: * swank-lispworks.lisp: * swank-sbcl.lisp:
* swank-sbcl.lisp (input-ready-p): Don't use sb-impl::fd-stream-fd-type if it's not present.
sbcl: fix INPUT-READY-P What a moronic bug. *blush*
sbcl: another run at WAIT-FOR-INPUT This is still disturbingly under-the-hood stuff, but at least we're using fewer internal symbols: drop poll() based solution, use SYSREAD-MAY-BLOCK-P in INPUT-READ-P instead.
* swank-sbcl.lisp (wait-for-input): Define only if #+os-provides-poll or #+win32.
* swank-sbcl.lisp (wait-for-input): Use poll only on #+os-provides-poll.
* swank-sbcl.lisp (wait-for-input): Call poll(2). * swank-backend.lisp (wait-for-streams, wait-for-one-stream): Deleted. Wouldn't work on binary streams.
* swank.lisp (create-server): Add a :backlog argument. (setup-server): Pass it along. * swank-backend.lisp (create-socket): Backlog argument. * swank-abcl.lisp: Implement it. * swank-allegro.lisp: * swank-ccl.lisp: * swank-clisp.lisp: * swank-cmucl.lisp: * swank-corman.lisp: * swank-ecl.lisp: * swank-lispworks.lisp: * swank-sbcl.lisp: * swank-scl.lisp:
sbcl: restart-frame can restart anon and lexical functions now ...at least when the stars and entry points align.
New wire format. Switch from character streams to binary streams. Counting characters was error prone because some Lisps use utf-16 internally and so READ-SEQUENCE can't be used easily. The new format looks so: | byte0 | 3 bytes length | | ... payload ... | The playload is an s-exp encoded as UTF-8 string. byte0 is currently always 0; other values are reserved for future use. * swank-rpc.lisp (write-message): Use new format. (write-header, parse-header, asciify, encoding-error): New. * swank.lisp (accept-connections): Create a binary stream. (input-available-p): Can't read-char-no-hang on binary streams. * slime.el (slime-net-connect): Use binary as coding system. (slime-net-send, slime-net-read, slime-net-decode-length) (slime-net-encode-length, slime-net-have-input-p): Use new format. (slime-unibyte-string, slime-handle-net-read-error): New. (featurep): Require 'un-define for XEmacs. ([test] break): Longer timeouts. * swank-sbcl.lisp (input-ready-p): Use sb-sys:wait-until-fd-usable.
* swank-abcl.lisp (accept-connection): Make it so. * swank-clisp.lisp (accept-connection): Make it so. * swank-cmucl.lisp (accept-connection): Make it so. * swank-lispworks.lisp (accept-connection): Make it so. * swank-sbcl.lisp (accept-connection): Make it so. * swank-scl.lisp (accept-connection): Make it so.
* swank-sbcl.lisp (string-to-utf8, string-to-utf8): Implemented.
* swank-sbcl.lisp (preferred-communication-style): check for :sb-thread before :win32, so :spawn is preferred for threaded Windows builds.
sbcl: support for SBCL < 184.108.40.206 In theory at least -- :SERVE-EVENTS keyword argument to MAKE-SOCKET-STREAM was introduced then, but I don't claim to have extensively tested current Slime with SBCLs that old.
sbcl: oops, can't intern SWANK*COMMUNICATION-STYLE* when loading the backend Hackety hack. :/
sbcl: use explicit :SERVE-EVENTS T with sockets when necessary It won't be the default for much longer.
sbcl: teach the SBCL backend about &MORE vars Only makes a difference on bleeding-edge SBCL.
sbcl: compiling from buffer tmpfile directory can be a symlink ...so need to PROBE-FILE to make sure the pathnames match before comparison.
sbcl: workaround for auto-flush thread deadlocks Occasionally auto-flush thread could deadlock with a thread doing compilation: T1: grabs world-lock T2: decides to flush, grabs stream lock T1: needs to do output (compiler note, etc), waits on the stream lock T2: needs the world-lock for a while (PCL dispatch machinery setup, etc) KABOOM. This is an SBCL issue, no mistake about it -- but sorting out the world-lock handling is going to take a while, and sticking a deadline around the FINISH-OUTPUT call avoids the issue.
sbcl: get compilation notes for recursive entry to compilation right When C-c C-c'ing eg. an (EVAL-WHEN ... (REQUIRE :FOO)) form, previously we tried to find the position for the note from the tempfile.
fix swank-sbcl.lisp execv -- sb-posix:syscall-error broke backwards compatibility
sbcl: use WITH-COMPILATION-UNIT :SOURCE-NAMESTRING Allows recording the right source-file for C-c C-c, which in turn allows SBCL's redefinition muffling to work right. This in turn makes it sensible to turn *trap-load-time-warnings* on by default.
* swank-sbcl.lisp (deinit-log-output): Use the right symbol for *LOG-OUTPUT*, swank package isn't available at the time swank-backend is compiled.
SBCL: null *log-output* when saving core Hanging on to a *log-output* from a previous image is bad on SBCL at least: it is initialized to an FD-STREAM, which cannot be reused from one image to another. Deal with this by using sb-ext:*save-hooks* to clear the stream.
* swank-sbcl.lisp (background-save-image): add #-win32, because it uses symbols not present on win32. Reported by Holly Styles.
sbcl: Better VOP descriptions for XREF buffers
* swank-sbcl.lisp (exec-image): Use (car sb-ext:*posix-argv*) if SBCL doesn't have sb-ext:*runtime-pathname*. Reported by Vinay.
Snapshot restore support for SBCL. * swank-backend.lisp (background-save-image): New. * swank-sbcl.lisp (command-line-args, dup, sys-execv, exec-image) (make-fd-stream, background-save-image): New. Add support to save snapshots in backround. * swank-snapshot.lisp (background-save-snapshot): New. (resurrect): Initialize repl streams. * slime-snapshot.el (slime-snapshot): With prefix-arg perform saving in background. Also ask before overwriting existing files.
* swank-sbcl.lisp (save-image): Fix save-lisp-and-die invocation. Based on a patch by Anton Kovalenko.
* swank-sbcl.lisp (quit-lisp): Use sb-thread:terminate-thread instead of sb-ext:quit :recklessly-p t. This way sb-ext:*exit-hooks* will be run. Reported by Lorenz Mösenlechner.
* swank-backend.lisp (with-symbol): Test for package before doing find-symbol. * swank-sbcl.lisp(Multiprocessing): use with-symbol. (emacs-inspect t): Remove newlines from text returned by sb-impl::inspected-parts, otherwise there will be ".." inserted by the printer due to (*print-lines* 1).
* swank-sbcl.lisp (condition-timed-wait): New helper. Use WITH-DEADLINE rather than WITH-TIMEOUT because the latter conses a new timer, and this function is called _a lot_. (receive-if): Use it.
* swank-sbcl.lisp (definition-source-for-emacs): Don't error when source location doesn't contain form position, point emacs to the beginning of a source file and if it's a function provide a snippet "(defun <name> ".
* slime.el (slime-compile-and-load-file): Accept C-u arguments for compilation policy the same way as slime-compile-defun. * swank.lisp (compile-file-for-emacs): Take an additional policy argument. * swank-backend.lisp (swank-compile-file): Ditto. * swank-sbcl.lisp (compiler-policy, (setf compiler-policy)): rename from get/set-compiler-policy. (with-compiler-policy): New macro. (swank-compile-file): Use with-compiler-policy. (swank-compile-string): Ditto.
* swank-backend.lisp (converting-errors-to-error-location): Moved here from swank-sbcl.lisp so other backends can make use of it, too. * swank-sbcl.lisp: The above macro was called slightly differently, so update uses accordingly.
* swank-sbcl.lisp (compiler-note-location): Add missing return-from.
* contrib/slime-repl.el (sldb-insert-frame-call-to-repl): New function for inserting a call to a frame into the REPL. Bound to C-y in SLDB. * swank-backend.lisp (frame-call): New function. Returns a string representing a call to the entry point of a frame. * swank-ccl.lisp (frame-call): Implementation of the above. * swank-sbcl.lisp (frame-call): Ditto.
* slime.el (compile-defun [test]): Also test proper notification after reader-error. Additionally: bind font-lock-verbose to nil to prevent annoying font-lock messages during the test. * swank-sbcl.lisp (signal-compiler-condition): Make sure READER-ERROR comes before ERROR in typecase. (swank-compile-file): Remove handling FATAL-COMPILER-HANDLER because a) this handling prevents sbcl from printing the diagnostics to the repl, and b) sbcl itself should handle this and translate it into proper return value for compile-file.
* contrib/swank-asdf.lisp (asdf:operation-done-p): ASDF included with some implementations doesn't have AROUND method combination, so guard against its usage. This will prevent swank:reload-system from working, but it will let load swank-asdf. Reported by Mark Evenson. * swank-backend.lisp (defpackage): export with-symbol and replace its fully qualified usage everywhere.
simplify newly introduced categorize-definition-source; gosh what was I thinking?
* swank-sbcl.org (categorize-definition-source): New. (definition-source-for-emacs): Use it. Slightly refactored. Renamed from `make-definition-source-location'. (find-definitions, find-source-location) (source-location-for-xref-data, function-dspec): Updated accordingly. (source-file-position): Scratch last argument, not needed anymore.
* swank.lisp (collect-notes): Establish new abort restart ("Abort Compilation"); if an error is signaled in EVAL-WHEN, or during macroexpansion -- assuming the backend DTRT --, invoking this restart will result in the normal compilation failure behaviour, including correct reporting of the offending toplevel form. * swank-sbcl.lisp (handle-notification-condition): Use `real-condition' here. (handle-file-compiler-termination): As a result, not needed anymore. (call-with-compilation-hooks): Also signal information about normal errors.
* swank-sbcl.lisp (call-with-debugger-hook): Oops, removed the binding for *DEBUGGER-HOOK*. Fix that. (make-invoke-debugger-hook): Do nothing if hook is NIL.
* swank-backend.lisp (*debug-swank-backend*): New variable. If true, backends should not catch internal errors (e.g. during definition finding), and should not perform backtrace magic. (make-error-location): New helper. (find-definitions [interface]): Default to error location. * swank-sbcl.lisp (converting-errors-to-location): New helper macro. Regards new *DEBUG-SWANK-BACKEND*. (find-definitions [implementation]): Use it. (find-source-location [implementation]): Ditto. (functiond-spec): Ditto. (frame-source-location [implementation]): Ditto. (*debug-definition-finding*): Removed. (make-source-location-specification): Removed. (safe-function-source-location): Removed. (safe-source-location-for-emacs): Removed. Not needed anymore. (call-with-debugging-environment): Do not perform stack hinting depending on *DEBUG-SWANK-BACKEND*.
* swank-sbcl.lisp (set-break-hook): New. (call-with-break-hook): New, too. Both extracted from elsewhere. (install-debugger-globally, call-with-debugger-hook): Use them. (make-invoke-debugger-hook): Adapted not to call *debugger-hook* on its own; it should rather decline because *debugger-hook* is tried after *invoke-debugger-hook* anyway. Previously, a custom *debugger-hook* (which declines itself) would have been executed twice.
swan-sbcl.lisp(frame-locals): `frame-debug-vars' can return NIL, so check before using it as a vector. Patch by Nathan Bird.
* swank-sbcl.lisp (who-specializes): Implement. Requires SBCL 1.0.32.
* swank.lisp (without-interrupts): Removed. No longer used. * swank-backend.lisp (call-without-interrupts): Removed. Update backends accoringly.
* swank-sbcl.lisp (thread-description): Remove it and supporting code, because it didn't really work. * swank.lisp (with-thread-description): Remove unused macro.
* swank-sbcl.lisp (call-with-debugger-hook): Correctly deal with case of HOOK being NIL. (make-definition-source-location): Somewhat simplified. (string-path-snippet): Removed, not needed anymore.
* doc/slime.texi: Fix a typo. * swank-sbcl.lisp (swank-compile-string): Ignore unused variable warningsp.
* swank-sbcl.lisp (receive-if): Bind *break-on-signals* to nil before using with-timeout.
* swank-sbcl.lisp (swank-compile-string): Make sure that it returns NIL on compilation failure.
Separate context info from compiler message text. * swank-backend.lisp (compiler-condition): Add a new slot :source-context. Remove :short-message. * swank-cmucl.lisp, swank-sbcl.lisp, swank-scl.lisp, swank-openmcl.lisp, swank-ccl.lisp: Update callers. * swank.lisp (make-compiler-note): Use source-context slot. * slime.el (slime-note.source-context): New. (slime-insert-compilation-log): Use it. (slime-note.short-message): Deleted.
* swank-sbcl.lisp (signal-compiler-condition): read sb-kernel:redefinition-warning only if it exists. Some older SBCLs don't have it (particularly included in the stable Debian).
* swank-backend.lisp (severity [type]): Allow :redefinition. * swank-sbcl.lisp (signal-compiler-condition): Tag redefinitions. * slime.el (slime-maybe-show-compilation-log): Do not show compilation log if each note describes just a redefinition. (slime-insert-compilation-log): Insert notes indented by 2 spaces. Insert some more newlines so the buffer appears more structured. (slime-show-note-counts): Add :redefinition to ecase. (slime-redefinition-note-p): New. (slime-severity-label): Was unused. Adapted to be usable.
* swank-sbcl.lisp (tempnam): Muffle efficientcy notes.
* swank-sbcl.lisp (add-fd-handler): Avoid recursive invocation of the handler, e.g. when read-sequence blocks.
* swank-backend.lisp (frame-source-location): Renamed from frame-source-location-for-emacs. Update callers accordingly.
Some workarounds for SBCL on Windows. * swank-sbcl.lisp (input-available-p): New function. (wait-for-input): Use it. ([win32] handle-listen, has-buffered-input-p): New. (temp-file-name, tempnam): Plain tmpnam(3) is next to useless on Windows use tempnam(3) instead.
* swank-source-file-cache.lisp (read-snippet-from-string): New. * swank-sbcl.lisp (source-hint-snippet): Use it. (emacs-buffer-source-location): Use it, too. (string-path-snippet): Ditto. Additionally: Make sure the returned string is truncated by *SOURCE-SNIPPET-SIZE*.
Fix thinko. DOCUMENTATION does not support :CLASS.
* swank-backend.lisp ([default] declaration-arglist): Add arglist of DECLARATION declaration. * swank-openmcl.lisp ([eql 'optimize] declaration-arglist): Implement it for CCL. (describe-symbol-for-emacs): Add :CLASS and :TYPE. (describe-definition): Add :TYPE. * swank-sbcl.lisp (describe-symbol-for-emacs): Add :CLASS. Adapted from patch by Stas Boukarev.
* swank-sbcl.lisp (swank-compile-file): Return T for the FAILURE-P return value in case of a FATA-COMPILER-ERROR.
* slime.el (slime-choose-overlay-region): Special case :read-error notes regardless of position kind. * swank-sbcl.lisp (signal-compiler-condition): Return :READ-ERROR as severity for reader-errors. (compiler-note-location): Fix off-by-one when compiling from buffer.
* swank-sbcl.lisp (compiling-from-buffer-p), (compiling-from-file-p) (compiling-from-generated-code-p): New helpers; extracted from LOCATE-COMPILER-NOTE. (locate-compiler-note): Use them. (compiler-note-location): Use them, too, to handle reader-errors when compiling from file. This completes 2009-02-27. Reported by Christian Lynbech.
C-c C-c on (defun foo () ,bar) did not result in a compiler note overlay on SBCL. * swank-sbcl.lisp (compiler-note-location): Make it take a condition; if the condition is a READER-ERROR, the passed compiler-error-context is very likely NIL---we have not proceeded beyond reading, so we aren't within the compiler yet. In that case, we use the stream position of the stream behind the READER-ERROR instead.
In Xref, list IR1-conversion functions with :DEF-IR1-TRANSLATOR as prefix rather than DEFUN. (Test case: M-. on FUNCTION.) * swank-sbcl.lisp (definition-specifier): New function. (make-dspec): New function. Splitted from MAKE-SOURCE-LOCATION-SPECIFICATION.
* swank-backend.lisp (with-symbol): New function, to be used with #+. * swank-sbcl.lisp: Use WITH-SYMBOL and get rid of SBCL-WITH-SYMBOL. * swank-openmcl.lisp (macroexpand-all): Implement it. Patch by Stas Boukarev.
* swank-backend.lisp (swank-compile-file): Take output-file as additional argument. Update backends accordingly. * swank.lisp (*fasl-directory*): New variable. (fasl-pathname): New function. (compile-file-for-emacs): Use it.
* swank-backend.lisp (swank-compile-string): Pass the buffer-file-name to Lisp, not only the directory. Update callers accordingly
* swank-sbcl.lisp (function-arglist): SB-INTROSPECT:FUNCTION-ARGLIST is deprecated in bleeding edge sbcl.
Arglists of user-defined types are now displayed by slime-autodoc on SBCL. (deftype foo (x y) `(cons ,x ,y)) (declare (type (foo | * swank-sbcl.lisp ([method] type-specifier-arglist): Make use of recently introduced SB-INTROSPECT:DEFTYPE-LAMBDA-LIST.
As of now, `C-u C-c C-c' compiled a function with maximum debug settings (SBCL only.) Now, `M-- C-c C-c' will compile a function with maximum _speed_ settings (still SBCL only) --- useful to elicit compiler notes. * slime.el (slime-compilation-debug-level): Renamed to `slime-compilation-policy'. (slime-normalize-optimization-level): Renamed to `slime-compute-policy'. * swank.lisp (compile-string-for-emacs): Takes a policy now. (compile-multiple-strings-for-emacs): Ditto. * swank-backend.lisp (swank-compile-string): Change :DEBUG key arg to :POLICY. * swank-scl.lisp, swank-openmcl.lisp, swank-lispworks.lisp * swank-ecl.lisp, swank-corman.lisp, swank-cmucl.lisp, * swank-clisp.lisp, swank-allegro.lisp, swank-sbcl.lisp: Changed accordingly.
* swank-sbcl.lisp (wait-for-input): Return streams which are at EOF.
* swank-sbcl.lisp (swank-compile-file): Fix typo.
* swank-backend.lisp (frame-restartable-p): New function. (swank-frame): Deleted. Update implemenetations accordingly. (print-frame): Renamed back from print-swank-frame. * swank.lisp (backtrace): Don't clutter the backtrace with '(:restartable :unknown). For practical purposes :unknown is the same as nil. * slime.el (sldb-compute-frame-face): Only accept nil or t for the :restartable prop.
* swank-backend.lisp (swank-compile-file): Return the same values as COMPILE-FILE. Update backends accordingly.
Some cleanups for compilation commands. * slime.el ([defstruct] slime-compilation-result): Rename result slot as successp. (slime-make-compilation-finished-continuation): Deleted. slime-eval-async preserves the current buffer and preserving the window-configuration was always a questionable feature. (slime-compilation-finished): Simplified. (slime-show-note-counts): Also show the success/failure flag. (slime-recompile-locations): Take a continuation as argument rather than messing around with compilation-finished-hooks. (slime-aggregate-compilation-results): New function. (slime-xref-recompilation-cont): Renamed from slime-make-xref-recompilation-cont. (slime-compiler-results): Deleted. (slime-goto-first-note-after-compilation): Replaced with hook function slime-goto-first-note. (slime-compilation-just-finished): Deleted. (slime-to-lisp-filename-function): Use convert-standard-filename. * swank.lisp ([defstruct] compilation-result): Renamed from swank-compilation-result. (measure-time-interval): Return seconds as float. (collect-notes): Renamed from swank-compiler. Return a single compilation-result. (compile-multiple-strings-for-emacs): Return a list of compilation-results instead of a single result with merged notes. * swank-backend.lisp (filename-to-pathname): Renamed from parse-emacs-filename. Updated callers. (pathname-to-filename): New function. Use it where appropriate. * swank-scl.lisp (pathname-to-filename): Implement it in the backend to get rid of the #+scl in swank.lisp. * swank-cmucl.lisp (swank-compile-file, swank-compile-string): Return t on success.
* swank-sbcl.lisp: Add support for WHO-SPECIALIZES. This requires a patch for SBCL's SB-INTROSPECT contrib which I sent upstream a few minutes ago.
* swank-sbcl.lisp (wait-for-input): Implement this in backend, since read-char-no-hang doesn't work in fd-handlers. (install-sigint-handler): Go through invoke-interruption and with-interrupts to support nested interrupts.
* swank-sbcl.lisp (make-definition-source-location): Fix typo introduced with crlf-related commit on 2008-09-16.
Adjust positions in files with CRLF-style end-on-line markers. * slime.el (slime-eol-conversion-fixup): New function. (slime-goto-location-position): Use it. Also add a new position type :offset, so that we don't adjust offsets in strings that were sent over the wire (which uses LF eol-convention). * swank-abcl.lisp * swank-allegro.lisp * swank-clisp.lisp * swank-cmucl.lisp * swank-corman.lisp * swank-ecl.lisp * swank-lispworks.lisp * swank-openmcl.lisp * swank-sbcl.lisp * swank-scl.lisp: Create :offset style positions where needed. * swank-lispworks.lisp (skip-comments): New function. (dspec-stream-position): Use it.
New faces: `sldb-restartable-frame-line-face', `sldb-non-restartable-frame-line-face'. The former is the face for frames that are surely restartable, the latter for frames that are surely not restartable. If restartability of a frame cannot be reliably determined, the face `sldb-frame-line-face' is used. At the moment, determination of frame restartability is supported by the SBCL backend only. * slime.el (sldb-frame.string): New. (sldb-frame.number): New. (sldb-frame.plist): New. (sldb-prune-initial-frames): Use them. (sldb-insert-frames): Ditto. (sldb-compute-frame-face): New. (sldb-insert-frame): Use `sldb-compute-frame-face' to insert frames with one of the faces described above. * swank.lisp (defslimefun backtrace): Changed return value; each frame is now accompanied with a PLIST which at the moment can contain :RESTARTABLE NIL/T/:UNKNOWN depending on whether the frame is restartable, or not. * swank-backend.lisp (defstruct swank-frame): New structure. (compute-backtrace): Is now supposed to return a list of SWANK-FRAMEs. (print-frame): Renamed to PRINT-SWANK-FRAME. * swank-sbcl.lisp, swank-cmucl.lisp, swank-lispworks.lisp, * swank-allegro.lisp, swank-scl.lisp, swank-openmcl.lisp, * swank-abcl.lisp, swank-clisp.lisp: Adapted to swank-backend changes.
* swank-sbcl.lisp (receive-if): Add #+/-linux to avoid yet more WITH-TIMEOUT related problems.
Compiling a file `let*.lisp' on SBCL via C-c C-k resulted in an error, because it parsed the asterisk to a wild pathname. Fix that. * swank-backend.lisp (definterface parse-emacs-filename): New. PARSE-NAMESTRING by default. * swank-sbcl.lisp (defimplementation parse-emacs-filename): Use SB-EXT:PARSE-NATIVE-NAMESTRING. * swank.lisp (compile-file-for-emacs): Use PARSE-EMACS-FILENAME. (compile-file-if-needed): Ditto. (load-file): Ditto. (swank-require): Ditto.
* swank-sbcl.lisp (sb-thread::get-foreground): Don't override. Let SBCL people fix this.
Add a dump-image function to the loader. * swank-loader.lisp (dump-image): New. * swank-backend.lisp (save-image): New interface. * swank-cmucl.lisp, swank-clisp.lisp, swank-sbcl.lisp (save-image): Implemented.
Improve interrupt safety for single-threaded lisps. * slime.el (slime-interrupt): Send a :emacs-interrupt message together with SIGINT. SIGINT now means "check for new events" instead of "invoke the debugger". * swank-backend.lisp (install-sigint-handler) (call-with-user-break-handler): New functions. * swank.lisp (simple-serve-requests,install-fd-handler): Use it. (read-packet, read-char): New function. Check for interrupts. (wait-for-event/event-loop): Check for interrupts.
* swank.lisp (wait-for-event): Add timeout argument. This is used for :fd-handler and :sigio style where we only process events as long we don't block. (wait-for-event/event-loop, read-event) (decode-message, receive-if): Ditto. (process-events): Renamed from read-from-emacs. (handle-requests): Renamed from handle-request. Take timeout argument. Update callers. (process-available-input): Deleted.
Display the "Use default debugger" restart more prominently. * swank.lisp (swank-debugger-hook): Bind a user visible restart to invoke the native debugger. (*global-debugger*): Make this nil by default. (sldb-loop): Minor cleanups. (sldb-break-with-default-debugger): Invoke the native debugger on top of the slime debugger. * slime.el (sldb-setup): Always pop to the debugger buffer. (sldb-activate): Optionally select the window. * swank-sbcl.lisp (sb-thread::get-foreground): Override this as the default implementation is unusable for Slime. * swank-lispworks.lisp (environment-display-notifier): Just return t.
Spawn the auto-flush thread in the front end. This removes some copy&paste code in various backends. * swank.lisp (auto-flush-loop): New function. (open-streams): Use it. * swank-backend.lisp (make-stream-interactive): Deleted.
(receive-if): Fix typo.
* swank-sbcl.lisp (short-backtrace): New function. (thread-description): Use it.
Queue interrupts in various places. * swank-backend.lisp (*pending-slime-interrupts*): New variable. (check-slime-interrupts): New function. * swank-lispworks.lisp (receive-if): Use it. * swank-sbcl.lisp, swank-openmcl.lisp: Ditto. * swank.lisp (*slime-interrupts-enabled*): New variable. (with-slime-interrupts, without-slime-interrupts): New macros. (invoke-or-queue-interrupt): New function. (interrupt-worker-thread, eval-for-emacs, swank-debugger-hook) (debug-nth-thread, wait-for-event, read-from-emacs): Use them.
No SBCL style-warnings for definitions inside EVAL-WHEN :COMPILE-TOPLEVEL
Drop distinction between "recursive" and non-recursive locks. * swank-backend.lisp (make-recursive-lock) (call-with-recursive-lock-held): Deleted. Make the default locks "recursive" instead.
* swank-gray.lisp (slime-output-stream): Undo last change. Make force-output and finish-output do the same.
* swank-gray.lisp (slime-output-stream): Add a slot "interactive-p" which should be true for streams which are flushed periodically by the Lisp system. Update the relevant accordingly.
Add some flow-control. * swank.lisp (make-output-function): Synchronize with Emacs on every 100th chunk of output. (wait-for-event,wait-for-event/event-loop,event-match-p): New functions. Used to selectively wait for some events and to queue the other events. (dispatch-event, read-from-socket-io): Tag non-queueable events with :call. (read-from-control-thread, read-from-emacs): Process :call events only; enqueue the others. (*log-output*): Don't use synonym-streams here. Dereference the symbol until we get at the real stream. (log-event): Escape non-ascii characters more carefully. * swank-backend.lisp (receive-if): New function. Update backends accordingly. (not yet for ABCL and SCL) * slime.el (slime-dispatch-event): Handle ping event.
* swank-sbcl.lisp (add-sigio-handler, add-fd-handler): Be quiet as a workaround for non-properly initialized *debug-io*. Patch from Richard M Kreuter.
* swank.lisp (swank-compiler): Fix bug when invoking an abort restart on a failed compilation attempt. * swank-sbcl.lisp (swank-compile-string): If a compilation attempt fails, COMPILE-FILE returns NIL which we tried to LOAD. Fix that. * swank-backend.lisp (swank-compile-string, swank-compile-file): Document return value.
An explicit numeric value as prefix-arg given to `C-c C-c' will now represent the debug level the defun is compiled with; `C-u C-c C-c' defaults to maximum debug like before. (Now also works for recompilation commands in xref buffers.) * slime.el (slime-compilation-debug-level): Renamed from `slime-compile-with-maximum-debug'. (slime-normalize-optimization-level): New. (slime-compile-defun): Adapted accordingly. (slime-compile-region): Ditto. (slime-recompile-location): Added setting of debug-level. (slime-recompile-locations): Ditto. (slime-recompile-xref): Now takes debug-level prefix-arg. (slime-recompile-all-xrefs): Ditto. * swank-sbcl.lisp (defimplementation swank-compile-string): Adapted accordingly.
`M-x slime-lisp-threads' will now contain a summary of what's currently executed in a thread that was created by Swank. * swank-backend.lisp (thread-description, set-thread-description): New interface functions to associate strings with threads. * swank-sbcl.lisp (thread-description, set-thread-description): Implemented. * swank.lisp (call-with-thread-description), (with-thread-description): New. (read-from-emacs): Now temporarily sets the thread-description of the current thread to a summary of what's going to be executed by the current request. (defslimefun list-threads): Changed return value to also contain a thread's description. * slime.el (slime-list-threads, slime-thread-insert): Adapted to new return value of LIST-THREADS.
* swank-sbcl.lisp (code-location-source-location), (code-location-debug-source-name): Patched for incompatible structure change in SBCL 220.127.116.11.
* swank-sbcl.lisp: Don't require asdf. (swank-compile-string): Add reader-conditionals for sb-ext::restrict-compiler-policy.
C-c C-c with prefix args now uses the maximal debug level. (By Zach Beane.) Only implemented for SBCL. * slime.el (slime-compile-with-maximum-debug): New variable. (slime-compile-defun, slime-compile-region): Use it. * swank.lisp (compile-string-for-emacs): Accept new debug argument. Update backend accordingly.
On SBCL, (block outta (let ((*debugger-hook* #'(lambda (c hook) (declare (ignore hook)) (return-from outta 42)))) (error "FOO"))) would kist silently skip over the *DEBUGGER-HOOK*, and pop right into SLDB to handle the error. Fix that. * swank-sbcl (make-invoke-debugger-hook): New function; returns a hook for SB-EXT:*INVOKE-DEBUGGER-HOOK* that checks for the presence of *DEBUGGER-HOOK*, and calls that if available. (install-debugger-globally): Use it. (call-with-debugger-hook): Ditto. (getpid): Declaim return type explicitly, to make SBCL shut up about being unable to optimize %SAP-ALIEN in ENABLE-SIGIO-ON-FD. * slime.el (def-slime-test break): Test additionally that BREAK turns into SLDB even when *DEBUGGER-HOOK* is locally bound. (def-slime-test locally-bound-debugger-hook): New test case; tests that a locally-bound *DEBUGGER-HOOK* is adhered, and not skipped.
* swank.lisp (find-definition-for-thing): New DEFSLIMEFUN. * swank-backend (find-source-location): New DEFINTERFACE. * swank-sbcl (find-source-location): Implement it. * slime.el (slime-edit-definition-cont): Use `slime-length='.
This change has been advertized in the Changelog on 2008-02-21. But it was in fact never committed. Fix regressions in the `find-definition' test case on SBCL: M-. on e.g. SWANK::READ-FROM-EMACS would bring the user to (|defun read-from-emacs ...) and not |(defun read-from-emacs ...) * swank-sbcl.lisp (source-file-position): Don't 1+ the returned position; i.e. return a position usable as a CL /file position/ which start from 0, and not a position usable in Emacs where buffer points start from 1. This is important because the return value is passed to SWANK-BACKEND::READ-SNIPPET which invokes CL:FILE-POSITION on it. (make-definition-source-location): Adapted to 1+ the position passed to Emacs, to reflect above change.
Drop the first return value of emacs-inspect. * swank.lisp (emacs-inspect): Drop the first return value. It wasn't used anymore. Update all methods and callers.
Inspector cleanups. * swank.lisp (emacs-inspect): Renamed from inspect-for-emacs. Changed all method-defs acordingly. (common-seperated-spec, inspector-princ): Moved to swank-fancy-inspector.lisp. (inspector-content): Renamed from inspector-content-for-emacs. (value-part): Renamed from value-part-for-emacs. (action-part): Renamed from action-part-for-emacs. (inspect-list): Renamed from inspect-for-emacs-list. (inspect-list-aux): New. (inspect-cons): Renamed from inspect-for-emacs-simple-cons. (*inspect-length*): Deleted. (inspect-list): Ignore max-length stuff. (inspector-content): Don't allow nil elements. (emacs-inspect array): Make the label of element type more consistent with the others.
drop sbcl inspector defclass
Drop second argument from inspect-for-emacs
* swank-sbcl.lisp (sbcl-source-file-p): When a buffer is not associated with any file, M-. for names defined there ends up calling SBCL-SOURCE-FILE-P with NIL -- guard against that.
* swank-sbcl.lisp (source-file-source-location): Use the debootstrap readtable when appropriate (fixes occasional reader errors when using "v" on debugger frames that point to functions defined in SBCL). Likewise for the debootstrapping packages. (code-location-debug-source-name): Ensure that we always return a physical namestring, Emacs won't like a pathname or a logical namestring.
* swank-loader.lisp: Aways compile-file `contrib/swank-asdf.lisp' on SBCL. This fixes "Undefined function" style-warnings when using `slime-asdf' in combination with SBCL. Reported by Cyrus Harmon. * swank-sbcl.lisp: Explicitly require ASDF. (While this is not strictly necessary, as it's implicitly loaded on requiring the other modules, I think it's better to be explicit about it.)
* swank-sbcl.lisp (condition-references): It's still needed.
Move SBCL doc references to contrib. * slime.el (sldb-insert-condition): Merge REFERENCES and EXTRAS. (sldb-extras-hooks, sldb-dispatch-extras): New hook. * swank.lisp (debugger-condition-for-emacs): Merge REFERENCES and EXTRAS. * swank-backend.lisp (condition-references): Removed. Merged with condition-extras. * swank-sbcl.lisp (condition-references): Removed. (condition-extras): Include references. (externalize-reference): New function. Don't return plain symbols. * swank-allegro.lisp (condition-references): Removed. * contrib/slime-references.el: New file.
Remove request-abort condition. * swank-backend.lisp (request-abort): Removed (abort-request): Removed. Replace all (3) uses with ERROR. * swank.lisp (eval-for-emacs): No special case for request-abort. * slime.el (slime-eval-async): Remove optional arg of :abort.
* swank-sbcl.lisp (sbcl-inspector): Fix typo.
Introduce backend-inspector class. * swank-backend.lisp (backend-inspector): New class. Introduce a named class to give as another way to dispatch to backend methods. * swank-cmucl.lisp: Use backend-inspector class. * swank-sbcl.lisp: Use backend-inspector class. * swank-clisp.lisp: Use backend-inspector class. * swank-lispworks.lisp: Use backend-inspector class. * swank-allegro.lisp: Use backend-inspector class. * swank-openmcl.lisp: Use backend-inspector class. * swank-abcl.lisp: Use backend-inspector class. * swank-corman.lisp: Use backend-inspector class. * swank-scl.lisp: Use backend-inspector class.
Added arglist display for declaration specifiers and type specifiers. Examples: `(declare (type' will display (declare (type type-specifier &rest vars)) `(declare (type (float' will display [Typespec] (float &optional lower-limit upper-limit) `(declare (optimize' will display (declare (optimize &any (safety 1) (space 1) (speed 1) ...)) &ANY is a new lambda keyword that is introduced for arglist description purpose, and is very similiar to &KEY, but isn't based upon plists; they're more based upon *FEATURES* lists. (See the comment near the ARGLIST defstruct in `swank.lisp'.) * slime.el: (slime-to-feature-keyword): Renamed to `slime-keywordify'. (slime-eval-feature-conditional): Adapted to use `slime-keywordify'. (slime-ensure-list): New utility. (slime-sexp-at-point): Now takes an argument that specify how many sexps at point should be returned. (slime-enclosing-operator-names): Renamed to `slime-enclosing-form-specs'. (slime-enclosing-form-specs): Returns a list of ``raw form specs'' instead of what was called ``extended operator names'' before, see `swank::parse-form-spec' for more information. This is a simplified superset. Additionally as tertiary return value return a list of points to let the caller see where each form spec is located. Adapted callers accordingly. Extended docstring. (slime-parse-extended-operator-name): Adapted to changes in `slime-enclosing-form-specs'. Now gets more context, and is such more powerful. This was needed to allow parsing DECLARE forms. (slime-make-extended-operator-parser/look-ahead): Because the protocol for arglist display was simplified, it was possible to replace the plethora of parsing function just by this one. (slime-extended-operator-name-parser-alist): Use it. Also add parser for DECLARE forms. (slime-parse-extended-operator/declare): Responsible for parsing DECLARE forms. (%slime-in-mid-of-typespec-p): Helper function for `slime-parse-extended-operator/declare'. (slime-incomplete-form-at-point): New. Return the ``raw form spec'' near point. (slime-complete-form): Use `slime-incomplete-form-at-point'. * swank.lisp: New Helper functions. (length=, ensure-list, recursively-empty-p): New. (maybecall, exactly-one-p): New. * swank.lisp (arglist-for-echo-area): Adapted to take ``raw form specs'' from Slime. (parse-form-spec): New. Takes a ``raw form spec'' and returns a ``form spec'' for further processing in Swank. Docstring documents these two terms. (split-form-spec): New. Return relevant information from a form spec. (parse-first-valid-form-spec): Replaces `find-valid-operator-name'. (find-valid-operator-name): Removed. (operator-designator-to-form): Removed. Obsoleted by `parse-form-spec'. (defstruct arglist): Add `any-p' and `any-args' slots to contain arguments belonging to the &ANY lambda keyword. (print-arglist): Adapted to also print &ANY args. (print-decoded-arglist-as-template): Likewise. (decode-arglist): Adapted to also decode &ANY args. (remove-actual-args): Adapted to also remove &ANY args. (remove-&key-args): Split out from `remove-actual-args'. (remove-&any-args): New. Removes already provided &ANY args. (arglist-from-form-spec): New. Added detailed docstring. (arglist-dispatch): Dispatching generic function for `arglist-from-form-spec' that does all the work. Renamed from prior `form-completion'. (arglist-dispatch) Added methods for dealing with declaration and type-specifiers. (complete-form): Adapted to take ``raw form specs'' from Slime. (completions-for-keyword): Likewise. (format-arglist-for-echo-area): Removed. Not needed anymore. * swank-backend.lisp (declaration-arglist): New generic function. Returns the arglist for a given declaration identifier. (Backends are supposed to specialize it if they can provide additional information.) (type-specifier-arglist): New generic function. Returns the arglist for a given type-specifier operator. (Backends are supposed to specialize it if they can provide additional information.) (*type-specifier-arglists*): New variable. Contains the arglists for the type specifiers in Common Lisp. * swank-sbcl.lisp: Now depends upon sb-cltl2. (declaration-arglist 'optimize): Specialize the `optimize' declaration identifier to pass it to sb-cltl2:declaration-information.
(*auto-flush-interval*): New variable controlling how often streams are flushed. (*auto-flush-lock*): New lock guarding access to the shared variable *auto-flush-streams*. (make-stream-interactive): Wrapped access to *auto-flush-streams* in a call-with-recursive-lock-held. (flush-streams): Wrapped in call-with-recursive-lock-held.
Accept :emacs-direcory in emacs-buffer-source-location plist.
Make M-. work better with hotpatched SBCL sources.
(condition-extras): Fix typo.
SBCL 126.96.36.199 supports restart-frame natively, and uses a different debug catch tag interface than earlier versions. * swank-sbcl (sbcl-with-restart-frame): New function, detects SBCL 22.214.171.124 or later. (return-from-frame): Another version for 220.127.116.11, using sb-debug:unwind-to-frame-and-call (restart-frame): Another version for 184.108.40.206, using sb-debug:unwind-to-frame-and-call
Added hash-table-weakness and use it in hash-table-inspecting
Xref support for SBCL (requires SBCL 18.104.22.168). * swank-sbcl.lisp (who-calls): New function, fetch xref data from sb-introspect. (who-binds): Ditto. (who-sets): Ditto. (who-references): Ditto. (who-macroexpands): Ditto. (defxref): New macro, create the above functions. (source-location-for-xref-data): New, map from sb-introspect xref format to the Swank xref format. (sanitize-xrefs): Map PCL method names to something more readable. (string-path-snippet): New function, finds a more accurate source snippet for definition source locations which have both an :emacs-string and a full source path available. Otherwise the xref location would point to the toplevel form rather than the exact form for functions compiled with C-c C-c. (source-file-position): New function, somewhat like source-path-file-position but uses the source-file cache, handles missing form-paths more gracefully. (make-definition-source-location): use the above two functions (sbcl-with-xref-p): new function, detect whether SBCL has xref support for backwards compability
(find-external-format, guess-external-format): New. (swank-compile-file): The external-format argument is now a backend specific value returned by find-external-format. Update implementations accordingly.
Restore support for pre 0.9.17 SBCL
(make-weak-value-hash-table): New for sbcl. (make-weak-key-hash-table): New for sbcl.
(list-callers, list-callers): Use SANITIZE-XREFS.
(inspect-for-emacs weak-pointer ...): Added method.
fix SBCL 0.9.17
*** empty log message ***
use INVOKE-STEPPER rather than funcalling *STEPPER-HOOK*
fix stepper on threaded SBCL
sbcl single-stepper
REPL history with paredit &al, stepping in the REPL with SBCL.
swank-backend.lisp (definterface): Drop that incredibly unportable CLOS stuff. Use plists and plain functions instead. Update backends accordingly.
remove linux_no_threads_p, defcondition -> define-condition
*** empty log message ***
(find-definitions): Remove backward compatibly code.
(swank-compile-string): Create temporary file with the string and compile-file it instead of compiling an anonymous lambda, as before, in order to better handle eval-when forms. (tmpnam, temp-file-name): New functions.
Use the NIL communication style for sbcl/win32 (and document it, too)
Stream locking patch from Robert Macomber
* Improve the robustness of connection establishment.
(restart-frame): Provide an implementation even if it doesn't quite do what it's supposed to do.
2005-12-06 Juho Snellman <email@example.com> * swank-sbcl.lisp (function-source-location, safe-function-source-location): Oops, define these functions also for the >0.9.6 case. Fixes broken sldb-show-source on SBCL 0.9.7.
(accept-connection): New argument: buffering.
swank-sbcl.lisp (find-definitions, make-source-location-specification make-definition-source-location, source-hint-snippet): As of SBCL 0.9.6.25 SB-INTROSPECT has better support for finding source locations. Use as much of it in swank-sbcl as possible. (Original version left reader-conditionalized for older SBCLs).
* swank-backend.lisp (install-debugger-globally): new interface function * swank.lisp (install-debugger): call install-debugger-globally * swank-sbcl.lisp (install-debugger-globally): set sb-ext:*invoke-debugger-hook* too
(make-stream-interactive, *auto-flush-streams*)[sb-thread]: Spawn a thread to flush interactive streams in reasonably short intervals.
Use *gray-stream-symbols* instead of enumerating them in each backend.
Import `stream-finish-output'.
Add EUC-JP as coding system. This patch eliminates the requirement of Mule-UCS to use Japanese characters. (Nice for pre-22 Emacs users.) Patch from NIIMI Satoshi.
swank-sbcl.lisp (make-weak-key-hash-table): Remove the implementation; SBCL doesn't actually support weak hash-tables.
(make-weak-key-hash-table): Implement it.
Present qualifiers in method definitions for sbcl
(noted by Brian Mastenbrook) non-Linux non-linkage-table sbcls try to get the address of linux_no_threads_p at fasl-load time, and complain vigorously if it's not available. Guard with #+linux.
Remove SBCL 0.9.1 support. (swank-compile-string): Funcall the compiled function outside with-compilation-hooks to prevent runtime warnings from popping up a *compiler-notes* buffer. From Juho Snellman. (swank-compile-string): Restore honoring of *trap-load-time-warnings*. From Zach Beane.
*** empty log message ***
(swank-compile-file): New optional argument `external-format'.
Patch from Gabor for new thread api support (older SBCLs may or may not work at all, but definitely don't work with threads)
Support sbcl 0.9.2
Changes for supporting recent SBCLs.
Distinguish macro and special operators from functions.
Fixed preferred-communication-style (last fix was broken).
(communication-style): Use `linux_no_threads_p' alien variable to decide whether to use :SPAWN. From dan_b for compatibility with new SBCLs.
(preferred-communication-style): Don't test for sb-futex, it has lost its meaning 0.8.21.
Add a few comments.
(source-file-source-location): Read the snippet at the right position.
(locate-compiler-note): Handle errors in macros better.
(quit-lisp): If we are running multithreaded, terminate all other threads too. (still broken in 0.8.20.27; used to work in ~0.8.20.2.) (with-debootstrapping, call-with-debootstrapping): Remove ugly backward compatibility code. (sbcl-source-file-p, guess-readtable-for-filename): New utilities. (function-source-location): Handle work off to helper functions. (find-function-source-location): New function. Use the shebang-readtable for SBCL source files. (function-source-position, function-source-filename) (function-source-write-date, function-toplevel-form-number) (function-hint-snippet, function-has-start-location-p) (function-start-location): New helpers. (safe-source-location-for-emacs): Don't catch errors if *debug-definition-finding* is true. (inspect-for-emacs): Minor beautifications.
(function-source-location): For definitions compiled in Emacs buffers, include the :emacs-string as a :snippet hint for search-based M-. lookup.
(swank-compile-string): Re-implemented. This time with temp-files and proper source-location tracking. (install-debug-source-patch, debug-source-for-info-advice): Patch SBCL's debug-source-for-info so that we can dump our own bits of debug info. (temp-file-name, call/temp-file): New utilities. (function-source-location, code-location-source-path): Rewritten to handle C-c C-c functions. Also use the source-path to locate the position. (locate-compiler-note): Renamed from resolve-note-location. (file-source-location, lisp-source-location) (temp-file-source-location, source-file-source-location) (string-source-position, code-location-debug-source-info) (code-location-debug-source-name, code-location-debug-source-created,) (code-location-debug-fun-fun, code-location-from-emacs-buffer-p) (function-from-emacs-buffer-p, function-debug-source-info) (info-from-emacs-buffer-p, code-location-has-debug-block-info-p) (stream-source-position): Lots of new helper functions. (with-debootstrapping): Moved upwards so that it can be used for source location searching. (source-location-for-emacs): Deleted
Updated for revisted sb-introspect patch: s/DEFINITION-SOURCE-CREATED/DEFINITION-SOURCE-WRITE-DATE/
Use swank-source-file-cache to find snippets of definitions. M-. is now much more robust to modifications in the source file. NOTE: To be effective requires a patch to sb-introspect that I have posted to sbcl-devel.
Fixed for latest SBCL HEAD revision and temporarily backwards-compatible with the current release.
Fixed for (and requires) 0.8.20.
(toggle-trace): Update tracing code for new interface.
(call-with-debugger-hook): Bind sb-ext:*invoke-debugger-hook* instead of setting it in emacs-connected. (emacs-connected): Deleted.
(toggle-trace-generic-function-methods, toggle-trace-function, toggle-trace-method, toggle-trace-fdefinition-wherein): Implement. (toggle-trace, process-fspec): New functions.
(profile-package): Add implementation for SBCL.
(accept-connection): The :external-format argument defaults now to :iso-latin-1-unix.
(%thread-state-slot, %thread-state): Refactored from thread-status. (thread-status): Use it. (all-threads): Exclude return zombies.
(inspect-for-emacs)[code-component]: Disassemble code-components too.
(make-socket-io-stream): Add #+sb-unicode.
Fix unbalanced parenthesis. Patch from Travis Cross.
(accept-connection): Accept :external-format as argument.
(thread-status): Decode the thread-state-slot instead of returning ???.
(emacs-connected): Updated for new interface.
(signal-compiler-condition): Actually delete one of the reader-conditionalized forms.
(signal-compiler-condition): Remove reader conditionals as the current code doesn't work in any SBCL before 0.8.13 anyway.
(find-defintions): Include sundry compiler stuff. Patch from Thomas Burdick.
(swank-mop): Export eql-specializer, eql-specializer-object and specializer-direct-methods from swank-mop. (inspect-for-emacs): Fix typo in ignore declaration.
(inspect-for-emacs): Insert function object's documentation when it's available.
2004-09-14 Marco Baringer <email@example.com> * swank-backend.lisp (inspector, make-default-inspector): Add an INSPECTOR object argument to the inspector protocol. This allows implementations to provide more information regarding cretain objects which can't be, or simply aren't, inspected using the generic inspector implementation. also export inspect-for-emacs and related symbols from the backend package. (make-default-inspector): New function. * swank.lisp (inspected-parts): Rename to inspect-for-emacs and add an inspector argument. Move inspect-for-emacs to swank-backend.lisp, leave only the default implementations. * swank-openml.lisp, swank-sbcl.lisp, swank-allegro.lisp, swank-cmucl.lisp, swank-lispworks.lisp (inspected-parts): Rename and change argument list. Many of the inspected-parts methods were being clobbered by the inspected-parts in swank.lisp, now that they're being used the return values have been updated for the new inspect-for-emacs API.
2004-09-13 Marco Baringer <email@example.com> * swank.lisp (inspected-parts): Added inspectors for pathnames, logical pathnames, standard-objects and numbers (float, ratio, integer and complex). * swank-backend.lisp: Define import-to-swank-mop. * swank-openmcl.lisp, swank-sbcl.lisp, swank-allegro.lisp: Don't define the import-to-swank-mop function (now defined in swank-backend.lisp). * swank-cmucl.lisp (swank-mop, function-name): Implement backend for inspector. (arglist): Add support for extracting arglists from function objects. (create-socket): Don't specify the host on PPC.
2004-09-13 Marco Baringer <email@example.com> * swank.lisp: New inspector protocol. The lisp side now returns a specially formated list of "things" to format which are then passed to emacs and rendered in the inspector buffer. Things can be either text, recursivly inspectable values, or functions to call. (inspected-parts): Redefine for new inspector protocol. (*inspectee-parts*): Redefine as array. (*inspectee-actions*): New array, similar to *inspectee-parts*. (reset-inspector): Update for new implementation of *inspectee-parts* and new variable *inspectee-actions*. (inspector-contents-for-emacs): New function. (inspect-object): Update for new inspector protocol. (inspector-nth-part): Update for new *inspectee-parts* implementation. (inspector-call-nth-action): New function. * slime.el (slime-inspector-action-face): New face. (slime-open-inspector): Adapt to new inspector protocol. (slime-inspector-operate-on-point): New function, subsumes slime-inspector-inspect-object-at-point. (slime-inspector-next-inspectable-object): Skip to next object, not just end of current object; wrap around buffer. (slime-inspector-mode-map): change bindings of [return] and "\C-m" * swank-bacend.lisp (swank-mop): New package. Simply defines all the MOP related symbols we need from an implementation. (arglist): Update doc string. Provide default implementation. (function-name): New backend function. * swank-allegro.lisp (swank-mop, slot-definition-documentation): Implement. * swank-sbcl.lisp (swank-mop, slot-definition-documentation, function-name): Implement. * swank-openmcl.lisp (swank-mop, function-name): Implement. (arglist): Implement for function objects.
Delete dead code.
Adding directory argument to swank-compile-string.
(list-callers, list-callees): Implemented.
(call-with-compilation-hooks): Trap and report errors that cause compilation to fail, e.g. read errors.
Implement actionable references in *slime-compiler-notes*. Tested with sbcl-0.8.12 and sbcl CVS head -- I hope I haven't broken things for non-SBCL users... (There are some things in this that I think are suboptimal: they have been marked with FIXMEs. I lack elispfu in sufficient measure to clean them up confidently)
(preferred-communication-style): Choose :fd-handler instead of :sigio when threads aren't available. A lot of people seem to have had problems with :sigio on SBCL.
(thread-id, find-thread): New backend function.
(call-with-syntax-hooks, with-debootstrapping): Preserve compatability with fairly recent SBCLs by checking for the presense of the debootstrapping facilities at macroexpansion time.
(*trap-load-time-warnings*): New variable. If it is true, conditions, most notably redefinition warnings, signalled at load time are not trapped. (swank-compile-file, swank-compile-string): Use it.
* swank-sbcl.lisp (default-readtable-alist): Implement it.
*** empty log message ***
(call-with-syntax-hooks): Add hooks to fix SB!-style package names. (shebang-readtable): Return a readtable with the readermacros need to parse SBCL sources.
(format-sldb-condition, condition-references): Implemented. Requires a recent (latest?) SBCL release.
(close-socket): Remove any SERVE-EVENT handlers for the socket's file descriptor.
(resolve-note-location): Resolve the location if we are called by swank-compile-string. The pathname argument is never :stream in SBCL, so the method written for CMUCL was never called.
Removed obsolete `swank-compile-system'. Removed some stale comments about supported features.
See ChangeLog entry 2004-04-06 Marco Baringer
Remove the workarounds for non-existent fcntl. (preferred-communication-style): Use multithreading if futexes are available, sigio if fctnl is present, and fd-handlers otherwise. (resolve-note-location): Don't try to construct a source-location if there's no context. Notes without location will be displayed in the note-listing buffer.
(enable-sigio-on-fd): Use sb-posix::fcntl instead of sb-posix:fcntl to avoid the ugly reader hack. SBCL doesn't have package locks and even if they add locks in the future sb-posix::fcntl will still be valid. (getpid): Use defimplementation instead of defmethod. (function-definitions): Take generalized function names ala '(setf car)' as argument.
(getpid): Use sb-posix:getpid.
(*communication-style*): New name for *swank-in-background*.
(+o_async+, +f_setown, +f_setfl+): Add correct constants for FreeBSD.
(swank-compile-string): Be friendly to case-inverting readtables.
more tweaking.
(find-definitions): Some tweaking.
Merge package-split branch into main trunk.
Implement changed backend interface and remove references to front end symbols.
See ChangeLog entry 2004-03-05 Marco Baringer
(thread-alive-p): Add default implementation. (describe-primitive-type): Add default implementation. (inspected-parts): Implemented for Allegro and CLISP.
(call-with-compilation-hooks): Bind fewer variables. Most of them are already bound in swank.lisp.
(kill-thread): Implemented.
(compile-file-for-emacs): Load the fasl file regardless of f-p.
* slime.el: Various bits of support for maintaining multiple SLIME connections to different Lisp implementations simultaneously. * swank-{backend,cmucl,sbcl,clisp,lispworks,openmcl}.lisp (lisp-implementation-type-name): Add function to return simple name of lisp implementation; used by new multi-connection functionality in slime.el.
(add-sigio-handler, remove-sigio-handlers): Renamed. (add-fd-handler, remove-fd-handlers): Implement interface.
(signal-compiler-condition): Initialize short-message slot. (long-compiler-message-for-emacs): New function.
(create-socket): Take interface as argument.
(inspected-parts): Implemented.
Update for modified thread interface.
(enable-sigio-on-fd): New function. Use fallback if sb-posix:fcntl isn't fbound.
(add-input-handler): Use fcntl from the sb-posix package.
Add more type declarations and detect missing initargs for the connection struct. Patch by Robert E. Brown.
Merge stateless-emacs branch into main trunk.
Use signal driven IO for CMUCL and SBCL. Use one thread per request for multithreaded lisps.
Patch by Robert E. Brown. Add type declarations to keep SBCL quiet.
Profiler support. Patch by Michael Weber.
(eval-in-frame, return-from-frame): Implemented. (sb-debug-catch-tag-p): New auxiliary predicate. (source-path<): Delete unused function.
Removed redundant MAKE-FN-STREAMS that I had re-added. Didn't see that it was common in swank-gray.lisp.
Updated to use `defimplementation'.
(make-fn-streams): Deleted. Already defined in swank-gray.lisp.
(arglist-string): Refactor common code to swank.lisp. (call-without-interrupts, getpid): Are now generic functions.
(remove-input-handlers): New method.
Implemented multiprocessing. Not perfect.
(*swank-in-background*): Set to :fd-handler.
(create-socket, local-port, close-socket, accept-connection) (add-input-handler, spawn): Implement new socket interface.
Updated for new network interface.
Implemented new server interface.
(format-condition-for-emacs): Replaced with debugger-condition-for-emacs. (backtrace): Use print-with-frame-label. (frame-locals): Rename the :symbol property to :name.
* swank-source-path-parser.lisp: new file, excerpting part of swank-cmucl.lisp to where SBCL can find it as well.
unbroke last commit, in two obvious respects
* swank-sbcl.lisp (compiler-note-location): replace with thinly-ported version from the CMUCL backend which understands :lisp as a pathname * slime.el (slime-xrefs-for-notes): a little more temporary variables, a little less cdr. Should be slightly faster on big systems (slime-goto-next-xref): set window point as well as buffer point - now works in GNU Emacs 21.2.1
* swank-backend.lisp (call-with-compilation-hooks): new GF should set up all appropriate error condition loggers etc to do a compilation preserving the notes. Implement for sbcl, cmucl * swank-sbcl.lisp (compiler-note-location and elsewhere): remove all trace of *compile-filename* (compile-*-for-emacs): shorten
* swank-sbcl.lisp (serve-request): more fiddling with serve-event descriptors * slime.el (slime-repl-return): slime-check-connected, otherwise pressing Return in an unconnected repl gets a bit weird
(create-swank-server): Accept an announce-function keyword argument.
(function-source-locations): Is replaces function-source-location-for-emacs. Make it at generic function. (function-source-location-for-emacs): Remove.
(open-listener): Don't make the socket non-blocking.
(handle-notification-condition): Don't ignore warnings without (compiler-note-location, brief-compiler-message-for-emacs, compiler-note-location): Handle null context. (compile-file-for-emacs): Bind *compile-filename* and load the fasl file only if it exists. (function-source-location): The name argument is now optional a should be a symbol. (find-function-locations): Return errors as a list of one error. (call-with-debugging-environment): Set *print-level* to 4 and *print-level* to 10. (Where both nil.) (source-location-for-emacs): Fall back to the location of the function if there is no block-debug-info. (safe-source-location-for-emacs): Catch error only; not all conditions. *compile-filename*: New variable.
(find-function-locations): Return a non-empty list of source locations.
* swank-sbcl.lisp (function-source-location-for-emacs): return a list of source locations (one per method) when the request is for a GF. This seems to make the elisp side popup a window to let the user select one. Cool.
(invoke-nth-restart): Use invoke-restart-interactively.
Use the new format for source locations and implement find-function-locations (just calls the old code).
* swank-sbcl.lisp (source-location-for-emacs): sb-debug::print-description-to-string takes only two args, not three. Now 'v' command works in sldb :-)
Sort out some of the problems with stale serve-event handlers (note that you also need a fix for sb-bsd-sockets from 0.8.6.x SBCL, if this is bothering you)
Support for output redirection to an Emacs buffer via a dedicated network stream. Can be enabled with *use-dedicated-output-stream*.
* swank-sbcl.lisp: delete big chunk of leftover commented-out code
(function-source-location): Use TRUENAME to resolve source file name (thanks Lawrence Mitchell).
Updated to use new debugger interfaces in swank-backend.lisp.
Updated to use new debugger interface in swank-backend.lisp. * swank-cmucl.lisp: Tidied up outline-minor-mode structure and added comments and docstrings.
* swank-sbcl.lisp (describe-symbol-for-emacs): Don't ask for (documentation SYM 'class), CLHS says there isn't any 'class documentation (and SBCL warns). * swank.lisp, swank-cmucl.lisp, swank-sbcl.lisp: Refactored interface through swank-backend.lisp for: swank-compile-file, swank-compile-string, describe-symbol-for-emacs (apropos), macroexpand-all, arglist-string. * swank-backend.lisp: New file defining the interface between swank.lisp and the swank-*.lisp implementation files.
Import gray stream symbols. (without-interrupts*): New function.
Modification for the new source-location stuff. I'm sure OpenMCL is now pretty broken.
(swank-macroexpand-all): Implemented.
(arglist-string): Pass *buffer-package* to find-symbol-designator.
(arglist-string): Don't intern the function name. Use find-symbol-designator instead.
Input redirection works now on the line level, like a tty. Output streams are now line buffered. We no longer compute the backtrace-length.
Implement stream-line-column.
Gray stream based input redirection from Emacs.
(serve-request): Bind a slime-toplevel catcher and handle slime-read-errors. (sldb-continue, throw-to-toplevel): Moved to swank.lisp.
Changed the connection setup to use a dynamic collision-free TCP port. The new protocol is this: Emacs calls (swank:start-server FILENAME) via the listener. FILENAME is /tmp/slime.${emacspid} Lisp starts a TCP server on a dynamic available port and writes the port number it gets to FILENAME. Emacs asynchronously polls for FILENAME's creation. When it exists, Emacs reads the port number, deletes the file, and makes the connection. The advantage is that you can run multiple Emacsen each with an inferior lisp, and the port numbers will never collide and Emacs will always connect to the right lisp. All backends are updated, but only CMUCL and SBCL are tested. Therefore, OpenMCL is almost certainly broken just now.
(accept-connection): Use a character stream to match swank.lisp.
(swank-compile-string): Include only one :SOURCE-PATH attribute in the plist, and replace the front element with a 0 (fixes a problem probably due to recent hacks to the elisp source-path lookups).
*** empty log message ***
Bind *slime-input* and *slime-io* to dummy values.
Move more stuff to swank.lisp.
Report style-warnings separately from notes (patch from Christopher Rhodes). Use REQUIRE to load sb-introspect instead of loading the source file (requires the sb-introspect library to be installed, which doesn't yet happen in the sourceforge-lagged SBCL anoncvs, but does in the real one).
Many fixes for the OpenMCL port: * swank.lisp (apropos-symbols): Change back to using the standard 2-argument APROPOS-LIST and check symbols explicitly when EXTERNAL-ONLY is true. Move loading of sys-dependent backend code into 'swank-loader'. * swank-sbcl.lisp: Moved declarations of *PREVIOUS-COMPILER-CONDITION* into 'swank.lisp' to kill warnings about undefined variables. * swank-openmcl.lisp (handle-compiler-warning): Use source position instead of function name for warning locations. (swank-compile-string): Compile into a temporary file instead of using COMPILE so finding warning positions works when using C-c C-c. (compute-backtrace): Don't display frames without a function. (apropos-list-for-emacs): Implement APROPOS. (who-calls): Implement WHO-CALLS. (completions): Implement COMPLETIONS. Use NIL instead of zero so FRESH-LINE does the right thing. * slime.el (slime-maybe-compile-swank): Removed function---compile the backend using 'swank-loader.lisp' instead. (slime-backend): Changed default backend to 'slime-loader'. (slime-lisp-binary-extension): Deleted as this is no longer needed. * swank-loader.lisp: New file.
Transplanted Helmut's serve-event server to replace the existing thread-using server. SLIME now has no dependency on SB-THREAD
The macro `with-trapping-compiler-notes' is now defined in the portable code, and expands to a call to the backend-defined `call-trapping-compiler-notes' with the body wrapped in a lambda. This is to avoid swank.lisp referring to macros in the backends -- it gets compiled first so it thinks they're functions.
Third portablizing iteration: more refactoring common bits pprint-eval set-package *compiler-notes* clear-compiler-notes *notes-database* clear-note-database features canonicalize-filename compiler-notes-for-file compiler-notes-for-emacs measure-time-interval call-with-compilation-hooks list-all-package-names apropos-symbols print-output-to-string print-description-to-string describe-symbol describe-function apply-macro-expander swank-macroexpand-1 swank-macroexpand disassemble-symbol
Second iteration refactoring common bits: server-port *swank-debug-p* start-server *emacs-io* *slime-output* read-next-form read-form *redirect-output* read-from-emacs send-to-emacs prin1-to-string-for-emacs defslimefun *buffer-package* from-string to-string guess-package-from-string eval-string interactive-eval defslimefun-unimplemented *swank-io-package*
First checkin on the way to rearranging the backends. Rename swank.lisp to swank-cmucl.lisp, then create new swank.lisp which loads an appropriate backend according to *features*. Next, identify common functions in the backends and move them into swank.lisp
First cut at an SBCL backend for SLIME. Note that this requires the SB-INTROSPECT package which is presently only in SBCL CVS HEAD ;;; Cursory testing has found that the following appear to work ;;; ;;; * Symbol completion. ;;; * Evaluation of forms with C-M-x ;;; * Apropos ;;; * Compilation of defuns with C-c C-c ;;; * File compilation with C-c C-k, apparently including error parsing ;;; * Disassembling the symbol at point with C-c M-d ;;; * Describing symbol at point with C-c C-d ;;; * Macroexpanding with C-c RET ;;; * find-definition, using sb-introspect ;;; * Basic debugger stuff: restarts, backtrace, toggle details ;;; * Can now interrupt a busy sbcl with C-c C-g ;;; * Most of the tests ;;; ;;; Things that aren't done/don't work yet: ;;; ;;; * Cross-referencing (nor is it likely, absent XREF port to SBCL) ;;; * testsuite can't find LOOP, reports bogus failure on some arglist lookups ;;; * eval-in-frame ;;; * M-. has an off-by-two (character positions) error ;;; * A slime command to load an asdf system. Note that this might involve ;;; compiling/loading files that Emacs has no buffers for ;;; * Dealing with multiple threads
This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, select a symbolic revision name using the selection box, or choose 'Use Text Field' and enter a numeric revision.
|ViewVC Help
|Powered by ViewVC 1.1.5


text:
Third-Party Software and Devices
Leading third-party developers have created a wide variety of plug-ins, devices, and content for use with Final Cut Pro X, Motion 5, and Compressor 4.
Learn more
White Papers
The Final Cut Pro X Transition White Paper includes detailed information to help editors transition from previous versions of Final Cut Pro.
The Final Cut Pro X Media Management White Paper is designed to help you optimize both individual and collaborative workflows with Final Cut Pro X.
The ProRes White Paper includes in-depth information about Apple ProRes, one of the most popular codecs in professional video post-production.
The RED Workflows White Paper outlines various options for RED-based post-production workflows with Final Cut Pro X.
The Compressor Transition White Paper includes an overview of the new interface and features in Compressor 4.1.
Browse and search web-based help for Final Cut Pro, Compressor, and Motion, or download PDF versions of the documentation.
AppleCare Support
AppleCare Professional Video Support can help you keep your project running smoothly, whether you're editing video, designing motion graphics, or setting up encoding for final delivery.
Final Cut Pro Support Page
Find up-to-date information about key topics as well as basic troubleshooting tips.
Apple Support Communities
Participate in online forums for Final Cut Pro, Compressor, and Motion hosted by Apple.
Books and Online Learning
Apple Pro Training Series and Apple Pro Video Series
Publishers and post-production experts help you learn more about Final Cut Pro X, Motion 5, and Compressor 4.
See all learning options
Graphically Enhanced Manuals
Master Final Cut Pro X concepts, features, and workflows with this unique and highly visual book series.
Web Tutorials
Whether you're new to Final Cut Pro or just looking to pick up some tips, you can get up to speed quickly by viewing online tutorials provided by leading video training developers.
PowerUp Training with Larry Jordan
Larry Jordan provides comprehensive training to video editors using Final Cut Pro. His unique style, techniques, methods, and resources will increase your productivity and enhance your skills. Power up your learning of Final Cut Pro, new or old, with Apple Certified Trainer Larry Jordan's free articles and videos.
Ripple Training
Apple Pro Video Series: Final Cut Pro X is the Apple-certified online video curriculum covering the workflows, tools, and features of Final Cut Pro X. Learn from Apple master trainer and Ripple Training founder Steve Martin as he presents five hours of instruction designed for both new and experienced video editors. In addition, follow motion graphics expert Mark Spencer as he explains how to use Motion 5 to create custom titles, transitions, and effects for Final Cut Pro X.
Final Cut Pro X Essential Training, a video-based tutorial series published by lynda.com, demonstrates why Final Cut Pro is the primary tool for professional video editors. Instructor Ashley Kennedy covers all the steps needed to get up and running, cut a story, mix audio, and deliver a final project. Whether you are brand-new to Final Cut Pro or an experienced editor, this course will have you up and running quickly.
Final Cut Pro X tutorials by the Mac Training Specialists at macProVideo.com. Learn Final Cut Pro X from Apple Courseware Author Michael Wohl. Stream tutorials in your web browser or download HD videos to your Mac, iPad, and iPhone. Get started with 44 minutes of free Final Cut Pro X First Look tutorials.
GeniusDV provides online training for learning Final Cut Pro X. Training is hosted by John Lynn, a longtime certified Final Cut Pro instructor, and features an interactive environment with video tutorials and downloadable media.
Help us improve Final Cut Pro, Motion, and Compressor.
Supported Cameras
Film and video professionals use a wide variety of cameras for post-production.
Find out which cameras arecompatible with Final Cut Pro
Apple Pro Training
Whether you're a beginner or a seasoned professional, you can expand your skills at an Apple Pro Training center. These centers meet Apple's highest standards for facilities, instructors, course delivery, and infrastructure.
Apple Certified Pros
An Apple Certified Pro has demonstrated operational knowledge of one of Apple's professional applications.
As the world of Final Cut Pro professionals continues to expand, the body of collective knowledge grows with it. Tap into a rich source of information sharing and collegial support by joining a user group, participating in a web forum, or browsing a Final Cut Pro blog.
User Groups
Join a Final Cut Pro user group in cities across the United States or around the world. Learn more
Web Forums
Share insights and information with the worldwide community of Final Cut Pro users. Learn more
Deepen your knowledge of Final Cut Pro through tips, tutorials, artist profiles, and more. Learn more


text:
National Survey On The Road To Better Customer Feedback
Friday, 28 June 2013
The public's views on Hampshire's highways and transport services will soon be compared with others across England as a result of the National Highways and Transport Public Satisfaction survey.
Hampshire County Council is one of 70 local authorities to sign up to a standardised survey that will ask members of the public exactly the same questions, whether they live in Aberdeen, Sheffield or Hampshire. The survey, which is being run for the sixth year, enables councils to compare results, share best practice and identify opportunities to work together.
The questionnaire will be posted to a minimum random sample of 4500 Hampshire residents in July with local and national results expected to be published later in the early autumn. Since the survey is based on a sample, residents that receive a copy are being urged to take part.
For the first time this year residents that receive the questionnaire will have the option to complete the survey online if they prefer, a short URL link will be printed on the front of the questionnaire and they will be required to enter a code before completing the questionnaire.
Councillor Seán Woodward, Executive Member for Economy, Transport and Environment at Hampshire County Council, said: "Maintaining and improving Hampshire's highways is a top priority for the Council. The Met Office has said that this spring was the coldest in 50 years and this, combined with the washout summer and cold wet winter has had an adverse effect on road conditions across the UK. Hampshire has been investing extra resources and making the most of new technology to restore our roads. At the same time we are continuing our long term planned maintenance programme - Operation Resilience - to make our roads and pavements more resilient and less susceptible to defects caused, for example, by extreme weather conditions.
"Results from previous surveys have highlighted residents' priorities and their perceptions, enabling us to focus our resources appropriately including making additional investment in highways maintenance. Although it is a random sample that is asked to complete the survey, we would be grateful if as many as possible of those people who are sent a questionnaire complete and return it. The more questionnaires that are returned, the better the picture to be drawn of the situation in Hampshire."
Peter Radford, Chair of the NHT Network Survey Steering Group said: "There are clear benefits to conducting a public survey in this way. As well as providing excellent value for money, it also enables everyone involved to identify areas of best practice and spot national, regional and local trends. This is not about producing a league table to champion one geographical area over another, it is about understanding customer views better and working together to deliver the best possible outcomes for local residents."