Opened 5 years ago

Last modified 6 months ago

#292 new defect

Large generated functions problems

Reported by: sboukarev Owned by: ehuelsmann
Priority: major Milestone: 1.6.0
Component: compiler Version: 1.3.0-dev
Keywords: Cc: stassats@…
Parent Tickets:

Description

Some components of f2cl, which are generated from Fortran, have functions with lots of code in it.

If there's too much code between go and a label, ABCL can't compile it.

(defmacro labels-galore (n)
  `(prog ()
      (go label1)
    label2
      ,@(loop for i to n
              collect `(print ,i) )
      (return)
    label1
      (go label2)))

(defun test ()
  (labels-galore 10000))

The assertion (<= -32768 JVM::OFFSET 32767) failed.

Increasing the number will eventually lead to a stack overflow.

Just a large body:

(defmacro large-body (n)
  `(progn
      ,@(loop for i to n
              collect `(print ,i))))

(defun test ()
  (large-body 10000))

The assertion (< 0 (LENGTH JVM::C) 65536) failed.

Subtickets (add)

Change History (7)

comment:1 Changed 5 years ago by sboukarev

  • Cc stassats@… added

comment:2 Changed 4 years ago by https://www.google.com/accounts/o8/id?id=AItOawkYnNNEAO_K40Gp0xROhyjOPgjvIskQ48M

  • Milestone set to 1.3.0
  • Version set to 1.3.0-dev

comment:3 Changed 4 years ago by mevenson

  • Milestone changed from 1.3.0 to 2.0

Ticket retargeted after milestone closed

comment:4 Changed 4 years ago by mevenson

  • Milestone changed from 2.0 to 2.0.0

Milestone renamed

comment:5 Changed 4 years ago by mevenson

  • Milestone changed from 2.0.0 to 1.4.0

comment:6 Changed 14 months ago by mevenson

  • Milestone changed from 1.4.0 to 1.5.0

Ticket retargeted after milestone closed

comment:7 Changed 6 months ago by mevenson

  • Milestone changed from 1.5.0 to 1.6.0

Ticket retargeted after milestone closed

Note: See TracTickets for help on using tickets.