ntg-context - mailing list for ConTeXt users
 help / color / mirror / Atom feed
From: "Procházka Lukáš Ing. - Pontex s. r. o." <LPr@pontex.cz>
To: ConTeXt <ntg-context@ntg.nl>
Subject: Strange crash when using lxp library
Date: Fri, 11 May 2012 17:39:10 +0200	[thread overview]
Message-ID: <op.wd5hrkwxtpjj8f@lpr> (raw)

[-- Attachment #1: Type: text/plain, Size: 1590 bytes --]

Hello,

I have a strange problem.

I tried to prepare the simplest example.

Let's have a table utility in 'Table-U_.lua' (to be placed to LUA_PATH):

----
table.fromExcelXML = function(fn)
...
           tabs[true] = true -- Comment this line to make it work(?!) [1]
...
end

if not context then
   require "lxp"

   print("\n777777")
   table.fromExcelXML("InzSiteLitom_Nove.xml")
   print("\n888888")
end
----

When you call it from the command line, it works fine:

----
C:\Lukas\ConTeXt\TestDDv>lua -e require'table-u_'

777777

888888
----

When used in a context file:

----
\mainlanguage[cz]
\enableregime[cp1250]

\startluacode
   require "lxp"
   require "Table-U_"

   print("\n111111")
   table.fromExcelXML("InzSiteLitom_Nove.xml")
   print("\n222222")
\stopluacode

\starttext
   AAA
\stoptext
----

it crashes with an exception in luatex:

"
Exception "unknown software exception" 0xc000000d" at 0x1028e4c3.
...
"

Would anyone have an idea what causes the program crash?

I also observed that commenting a line [1] in the "Table-U_.lua" makes context work;
but the place seems "innocent", so I have no idea what can cause ctx crashing.

Could anyone test the code, respectively give a hint how to make the [simplified] code work?

All ideas are welcome.

Thank you in advance.

Best regards,

Lukas


-- 
Ing. Lukáš Procházka [mailto:LPr@pontex.cz]
Pontex s. r. o.      [mailto:pontex@pontex.cz] [http://www.pontex.cz]
Bezová 1658
147 14 Praha 4

Tel: +420 244 062 238
Fax: +420 244 461 038

[-- Attachment #2: Text.mkiv --]
[-- Type: application/octet-stream, Size: 219 bytes --]

\mainlanguage[cz]
\enableregime[cp1250]

\startluacode
  require "lxp"
  require "Table-U_"

  print("\n111111")
  table.fromExcelXML("1.xml")
  print("\n222222")
\stopluacode

\starttext
  AAA
\stoptext

[-- Attachment #3: Text.log --]
[-- Type: application/octet-stream, Size: 1755 bytes --]

(C:/Lukas/ConTeXt/TestDDv/Text.mkiv

ConTeXt  ver: 2012.04.26 22:27 MKIV  fmt: 2012.4.30  int: english/english

system          > cont-new.mkiv loaded
(c:/ConTeXt/tex/texmf-context/tex/context/base/cont-new.mkiv
system          > beware: some patches loaded from cont-new.mkiv
)
system          > Text.top loaded

system          > options > start used options

used options    > % runtime options files (command line driven)
used options    > \unprotect
used options    > % feedback and basic job control
used options    > \nonstopmode
used options    > % handy for special styles
used options    > \startluacode
used options    > document = document or { }
used options    > document.arguments={
used options    >  ["FILE"]="Text.mkiv",
used options    >  ["halt-on-error"]=true,
used options    >  ["mode"]="Text",
used options    >  ["nonstopmode"]=true,
used options    > }
used options    > document.files={
used options    >  "C:/Lukas/ConTeXt/TestDDv/Text.mkiv",
used options    > }
used options    > \stopluacode
used options    > % process info
used options    > \setupsystem[inputfile=C:/Lukas/ConTeXt/TestDDv/Text.mkiv]
used options    > \setupsystem[\c!n=1,\c!m=1]
used options    > % modes
used options    > \enablemode[Text]
used options    > % options (not that important)
used options    > \startsetups *runtime:options
used options    > \stopsetups
used options    > % styles and modules
used options    > \startsetups *runtime:modules
used options    > \stopsetups
used options    > % done
used options    > \protect \endinput

system          > options > stop used options

(Text.top
)
fonts           > latin modern fonts are not preloaded
languages       > language en is active
regimes         > loading > vector 'cp1250' is loaded

[-- Attachment #4: Table-U_.lua --]
[-- Type: application/octet-stream, Size: 616 bytes --]

table.fromExcelXML = function(fn)
  local fh = assert(io.open(fn, "r"))
  local tabs = {}

  local callbacks =
    { StartElement = function(parser, name)
        if name == "Worksheet" then
          tabs[true] = true -- Comment this line to make it work(?!)
        end
      end,
    }

  local parser = lxp.new(callbacks)

  for ln in fh:lines() do
    parser:parse(ln)
    parser:parse("\n")
  end

  fh:close()

  parser:parse()
  parser:close()
end

if not context then
  require "lxp"

  print("\n777777")
  table.fromExcelXML("InzSiteLitom_Nove.xml")
  print("\n888888")
end

[-- Attachment #5: InzSiteLitom_Nove.zip --]
[-- Type: application/zip, Size: 11233 bytes --]

[-- Attachment #6: Type: text/plain, Size: 485 bytes --]

___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://tex.aanhet.net
archive  : http://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________

                 reply	other threads:[~2012-05-11 15:39 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=op.wd5hrkwxtpjj8f@lpr \
    --to=lpr@pontex.cz \
    --cc=ntg-context@ntg.nl \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).