Difference between revisions of "Language related articles"

From Lazarus wiki
m (Reverted to last edit by FPK)
Line 52: Line 52:
 
       calc_x87;
 
       calc_x87;
 
   end;
 
   end;
[http://www.zhaoguan.com 二氧化氯]
 
[http://www.108888.com 温湿度]
 
[http://www.208888.com 管道]
 
[http://www.308888.com 催化剂]
 
[http://www.408888.com 电子秤]
 
[http://www.508888.com 电加热器]
 
[http://www.708888.com 开关柜]
 
[http://www.300888.com 建材机械]
 
[http://www.500888.com 保险柜]
 
[http://www.700888.com 电路板]
 
[http://www.900888.com 乳胶漆]
 
[http://www.106666.com 工程塑料]
 
[http://www.206666.com 特许经营]
 
[http://www.1006666.com 楼宇自控]
 
[http://www.2006666.com 喷码机]
 
[http://www.306666.com 液位计]
 
[http://www.3006666.com 聚丙烯酰胺]
 
[http://www.506666.com 电磁铁]
 
[http://www.606666.com 超市设备]
 
[http://www.5006666.com 薄膜开关]
 
[http://www.6006666.com 指纹考勤]
 
[http://www.706666.com 渔具]
 
[http://www.7006666.com 跑步机]
 
[http://www.806666.com 防腐设备]
 
[http://www.8006666.com 锁具]
 
[http://www.906666.com 弹簧]
 
[http://www.9006666.com 纸箱]
 
[http://www.0001111.com 煤炭]
 
[http://www.00001111.com 保龄球]
 
[http://www.0003333.com 木地板]
 
[http://www.00005555.com 家用电器]
 
[http://www.0005555.com 植绒]
 
[http://www.0006666.com 钻头]
 
[http://www.00007777.com 冲压件]
 
[http://www.0008888.com 建筑机械]
 
[http://www.1236666.com 实木地板]
 
[http://www.3456666.com 捏合机]
 
[http://www.13088888888.com 整流器]
 
[http://www.13288888888.com 酒店用品]
 
[http://www.13588888888.com 升降台]
 
[http://www.13688888888.com 转换器]
 
[http://www.13788888888.com 软件下载]
 
[http://www.13888888888.com 喷砂机]
 
[http://www.02088888888.com 制罐]
 
[http://www.02288888888.com 工业炉]
 
[http://www.02188888888.com 生产线]
 
[http://www.02388888888.com 瓷器]
 
[http://www.02588888888.com 搅拌机]
 
[http://www.02788888888.com 印刷机械]
 
[http://www.3698888.com 综合布线]
 
[http://www.1478888.com 避雷器]
 
[http://www.888777888.com 减震器]
 
[http://www.8899888888.com 色织]
 
[http://www.8877888888.com 燃烧器]
 
[http://www.8866888888.com 机电设备]
 
[http://www.8855888888.com 防雷器]
 
[http://www.8833888888.com 地坪]
 
[http://www.8822888888.com 纸品]
 
[http://www.8811888888.com 冷弯型钢]
 
[http://www.7799888888.com 木工机械]
 
[http://www.7788888888.com 物流设备]
 
[http://www.7766888888.com 铁塔]
 
[http://www.7755888888.com 非开挖]
 
[http://www.7733888888.com 热电偶]
 
[http://www.7722888888.com 保险箱]
 
[http://www.6666888888.com 吸塑机]
 
[http://www.6655888888.com 喷漆]
 
[http://www.6633888888.com 过滤材料]
 
[http://www.6622888888.com 电刷]
 
[http://www.6611888888.com冷水机]
 
[http://www.5599888888.com 采暖]
 
[http://www.5588888888.com 机械加工]
 
[http://www.5577888888.com 照相器材]
 
[http://www.5566888888.com 电镀原料]
 
[http://www.5555888888.com 毛毡]
 
[http://www.5533888888.com 交通设施]
 
[http://www.5522888888.com 消毒机]
 
[http://www.5511888888.com 压滤机]
 
[http://www.3399888888.com 刻字机]
 
[http://www.3377888888.com 接口转换器]
 
[http://www.3366888888.com 电视电话会议]
 
[http://www.3311888888.com 贴纸相机]
 
[http://www.2299888888.com 橡胶机械]
 
[http://www.2277888888.com 喷泉设备]
 
[http://www.2266888888.com 丝印]
 
[http://www.2255888888.com 精细化工]
 
[http://www.2233888888.com 塑胶玩具]
 
[http://www.3355888888.com 五金模具]
 
[http://www.3333888888.com 电子设备]
 
[http://www.3322888888.com 企业形象设计]
 
[http://www.2211888888.com 指纹识别]
 
[http://www.1199888888.com 搬运车]
 
[http://www.1188888888.com 牛仔布]
 
[http://www.1177888888.com 电动车配件]
 
[http://www.1166888888.com 会议系统]
 
[http://www.1155888888.com 终端服务器]
 
[http://www.1133888888.com 录音笔]
 
[http://www.1122888888.com 球磨机]
 
[http://www.999999888.com 园林设计]
 
[http://www.999777888.com 路由器]
 
[http://www.999666999.com 手套箱]
 
[http://www.999555888.com 实验室设备]
 
[http://www.999333888.com 童装]
 
[http://www.999222888.com 手机美容]
 
[http://www.999111888.com 户外用品]
 
[http://www.888888999.com 证卡]
 
[http://www.888999888.com 机床附件]
 
[http://www.888555888.com 彩电]
 
[http://www.888333888.com 酒店管理]
 
[http://www.888222888.com 电话录音]
 
[http://www.888111888.com 油墨]
 
[http://www.777777888.com 布线]
 
[http://www.777999888.com 蜡烛]
 
[http://www.777666888.com 印刷包装]
 
[http://www.777555888.com 表面活性剂]
 
[http://www.777333888.com 节能灯]
 
[http://www.777222888.com 调味品]
 
[http://www.777111888.com 齿轮]
 
[http://www.666999888.com 高压泵]
 
[http://www.666666888.com 红外热像仪]
 
[http://www.666333888.com 塑料托盘]
 
[http://www.666222888.com 吊带]
 
[http://www.666111888.com 工业锅炉]
 
[http://www.555999888.com 休闲服]
 
[http://www.555777888.com 反光材料]
 
[http://www.555555888.com 印刷设备]
 
[http://www.555333888.com 足球推介]
 
[http://www.555222888.com 热处理]
 
[http://www.555111888.com 压铸]
 
[http://www.1111166666.com 商标注册]
 
[http://www.1111199999.com 喷灌]
 
[http://www.1111188888.com 逆变器]
 
[http://www.2222228888.com 输送带]
 
[http://www.2221118888.com 锻造]
 
[http://www.1119998888.com 车库门]
 
[http://www.1118888888.com 体育器材]
 
[http://www.1117778888.com 太阳能热水器]
 
[http://www.1116668888.com 绝缘材料]
 
[http://www.1115558888.com 焊管]
 
[http://www.1113338888.com 鼓风机]
 
[http://www.1112228888.com 试验]
 
[http://www.111166666.com 插座]
 
[http://www.111155555.com 艺术品]
 
[http://www.111133333.com 矿山机械]
 
[http://www.111122222.com 图像监控]
 
[http://www.333888888.com 无缝钢管]
 
[http://www.333777888.com 激光切割]
 
[http://www.333555888.com 标签打印机]
 
[http://www.333333888.com 燃气表]
 
[http://www.333111888.com 手机配件]
 
[http://www.3331118888.com 卫星定位]
 
[http://www.2229998888.com 印染]
 
[http://www.2228888888.com 玻璃机械]
 
[http://www.2226668888.com 铝型材]
 
[http://www.2225558888.com 注塑]
 
[http://www.1111133333.com 液压升降机]
 
[http://www.999998888.com 打标机]
 
[http://www.777778888.com 工具柜]
 
[http://www.666668888.com 焚烧炉]
 
[http://www.555558888.com 电力设备]
 
[http://www.333338888.com 干燥剂]
 
[http://www.222228888.com 计量泵]
 
[http://www.111118888.com 程控交换机]
 

Revision as of 20:07, 8 September 2004

Back to Compiler development articles

Things FPC 1.9.x currently doesn't support

Things FPC 1.9.x partially support

  • variants rumouredly have some problems.
  • currency support needs testing (there was some work done recently afaik)
  • Dynarrays, inclding Slice function seems to have problems.
  • Reintroduce; is only skipped not processed (at least the compiler says so)

The heavily variants using package DECAL has been ported recently and worked fine. So I think the variants problems are mostly over, and only atypical conversions miss. (that can be usually fixed easily if you submit a bug with a simple example that works in Delphi and not in FPC). However some RTL support (the wrapper classes) are largely unimplemented

New in 1.9.x (not yet in the docs)

  • {$fputype xxx) to select a certain fpu style or -Cfxxx on command line/cfg file
    • all: soft (not yet implemented)
    • i386: x87, sse, sse2
      • code compiled with sse uses the sse to do calculations with the single data type. This code runs only on Pentium III and above and AthlonXP and above
      • code compiled with sse2 uses the sse unit to do calculations with the single and double data type. This code runs only on PentiumIV and above and Athlon64 and above
    • x86-64: sse64
    • powerpc: standard
    • arm: libgcc, fpa, fpa10, fpa11, vfp
  • procedural property support (property outside a class with normal procedures as getters/setters.
  • reuse keywords imports all units the reused unit imports.
  • reintroduce omits warning about hidden methods
  • Some mac pascal extensions, see Mode MacPas.
  • system.prefetch(const mem); depending on the target processor the compiler generates a prefetch hint on the given memory location. On iA32 this is the sse instruction prefetchnta which is supported by Pentium3/AthlonXP and above. If the intruction set, selected with -Cp (on iA-32, prefetch instructions are generated for -Oppentium3 and above) doesn't support this instruction, no code is generated for prefetch.
  • Interface type selection: The commandline switch -SI and the directive $interfaces (possible values: corba and com) allow you to choose the type of interfaces which has no parent. Interfaces with parent inherit the style from their parent regardless of the currently selected interface type.
    • COM style interfaces work like Delphi interfaces: they inherit implicitly from IUnknown and they are reference counted.
    • CORBA style interfaces are neither ref. counted nor do they inherit from IUnknown.

For new rtl related stuff have a look at New in the 1.9.x rtl (not yet in the docs).

SSE Usage

To determine the supported instruction set, use the is_sse_cpu and is_sse2_cpu of the mmx unit. Because the sse code is usually faster than x87-fpu code, it's recommended to use these switches for heavy floating point calculations. If you want an application which runs on all fpu architectures, a possible solution is to put the code into an include file and include this file twice into your program: once compiled with e.g. -Cfsse2 and once without. Use the e.g. is_sse2_cpu variable to select the appropriate code:

 {$fputype x87}
 procedure calc_x87;
 {$i mymathcode.inc}
 {$fputype sse2}
 procedure calc_sse2;
 {$i mymathcode.inc}
 begin 
   if is_sse2_cpu then
     calc_sse2
   else
     calc_x87;
 end;